entonces tengo una página que tiene una barra de enlace fija en el lateral. Me gustaría desplazarme a los diferentes divs. Básicamente, la página es solo un sitio web largo, donde me gustaría desplazarme a diferentes divs usando el cuadro de menú a un lado.
Aquí está el jquery que tengo hasta ahora
$(document).ready(function() {
$('#contactlink').click = function() {
$(document).scrollTo('#contact');
}
});
El problema es que va automáticamente al div de contacto cuando se carga, luego, cuando presiono #contactlink
en el menú, se desplaza hacia arriba.
EDITAR: HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- jQuery-->
<script src = "<?php echo base_url() ?>assets/js/jquery.js"></script>
<!-- .js file-->
<script src = "<?php echo base_url() ?>assets/js/pagetwo.js"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/reset.css" />
<!-- .css for page -->
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/pagetwo.css"/>
<!-- page title-->
<title><!-- Insert Title --></title>
</head>
<body>
<div id="container">
<div id="sidebar">
<ul>
<li><a id = "aboutlink" href="#">auck</a></li>
<li><a id = "peojectslink" href="#">Projects</a></li>
<li><a id = "resumelink" href="#">Resume</a></li>
<li><a id = "contactlink" href="#">Contact</a></li>
</ul>
</div>
<div id="content">
<div class="" id="about">
<p class="header">uck</p>
<p class="info">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="sections"id="projects">
<p class = "header">Projects</p>
<p class="info">Projects</p>
</div>
<div class="sections" id="resume">
<p class = "header">Resume</p>
<p class="info">Resume</p>
</div>
<div class="sections" id="contacts">
<p class = "header">Contact</p>
<p class="info">Contact</p>
</div>
</div>
</div>
</body>
Gracias por la ayuda
Respuestas:
Primero, su código no contiene un
contact
div, ¡tiene uncontacts
div!En la barra lateral que tienes
contact
en el div en la parte inferior de la página que tienescontacts
. Eliminé el finals
para el ejemplo de código. (también escribiste mal laprojectslink
identificación en la barra lateral).En segundo lugar, eche un vistazo a algunos de los ejemplos para hacer clic en la página de referencia de jQuery. Debe usar hacer clic en Me gusta
object.click( function() { // Your code here } );
para vincular un controlador de eventos de clic al objeto ... Como en mi ejemplo a continuación. Como comentario aparte, también puede activar un clic en un objeto usándolo sin argumentos, comoobject.click()
.Tercero,
scrollTo
es un complemento en jQuery. No sé si tienes el complemento instalado. No se puede usarscrollTo()
sin el complemento. En este caso, la funcionalidad que desea es de solo 2 líneas de código, por lo que no veo ninguna razón para usar el complemento.Ok, ahora a una solución.
El siguiente código se desplazará al div correcto si hace clic en un enlace en la barra lateral. La ventana tiene que ser lo suficientemente grande como para permitir el desplazamiento:
Ejemplo en vivo
(Desplácese a la función tomada desde aquí )PD: Obviamente deberías tener una razón convincente para seguir esta ruta en lugar de usar etiquetas de anclaje
<a href="#gohere">blah</a>
...<a name="gohere">blah title</a>
fuente
No hay ningún
.scrollTo()
método en jQuery, pero hay.scrollTop()
uno..scrollTop
espera un parámetro, es decir, el valor de píxel al que debe desplazarse la barra de desplazamiento.Ejemplo:
desplazará la ventana (si hay suficiente contenido en ella).
Para que pueda obtener este valor deseado con
.offset()
o.position()
.Ejemplo:
Esto debería desplazar el
#contact
elemento a la vista.El método alternativo no jQuery es
.scrollIntoView()
. Puede llamar a ese método de cualquierDOM element
manera:true
indica que el elemento está colocado en la parte superior mientras quefalse
lo colocaría en la parte inferior de la vista. Lo bueno del método jQuery es que incluso puedes usarlo con mefx functions
gusta.animate()
. Por lo tanto, puede deslizar algo suavemente.Referencia: .scrollTop () , .position () , .offset ()
fuente
puedes probar :
fuente
Agregue esta pequeña función y úsela así:
$('div').scrollTo(500);
fuente
OK chicos, esta es una pequeña solución, pero funciona bien.
supongamos el siguiente código:
desea cuando una nueva publicación se agrega a 'the_div_holder' y luego desplaza su contenido interno (el div .post) a la última como un chat. Por lo tanto, haga lo siguiente cada vez que se agregue un nuevo .post al soporte div principal:
fuente
Primero obtenga la posición del elemento div hasta la que desea desplazarse mediante el método jQuery position ().
Ejemplo: var pos = $ ("div"). Position ();
Luego, obtenga los cordinates y (altura) de ese elemento con el método " .top ".
Ejemplo: pos.top;
Luego obtenga las x cordinates del elemento div con el método " .left ".
Estos métodos se originan a partir del posicionamiento CSS.
Una vez que obtenemos las coordenadas x & y, entonces podemos usar el scrollTo () de javascript ; método.
Este método desplaza el documento hasta una altura y ancho específicos.
Se necesitan dos parámetros como x & y cordinates. Sintaxis: window.scrollTo (x, y);
Luego, simplemente pase las cordinas x e y del elemento DIV en la función scrollTo () .
Consulte el siguiente ejemplo ↓ ↓
fuente
No es necesario también estos. Simplemente agregue div id a href de una etiqueta <a>
Así.
fuente