Estoy tratando de animar el desplazamiento a una ID particular al cargar la página. He investigado mucho y me encontré con esto:
$("html, body").animate({ scrollTop: $('#title1').height() }, 1000);
pero parece que esto comienza desde la ID y se anima a la parte superior de la página?
El HTML (que está a la mitad de la página) es simplemente:
<h2 id="title1">Title here</h2>
Respuestas:
Solo estás desplazando la altura de tu elemento. offset () devuelve las coordenadas de un elemento relativo al documento, y
top
param le dará la distancia del elemento en píxeles a lo largo del eje y:Y también puede agregarle un retraso:
fuente
scroll
. Con eso en mente, agregaría la posición de desplazamiento actual debody
a laoffset().top
posición del elemento que queremos ver. La suma resultante es el valor al que queremos desplazarnos.$('html, body').animate({ scrollTop: ($('html, body').scrollTop() + $('#title1').offset().top) }, 1000);
.offset().top
le daría un número negativo en este caso. Y esto realmente solo funcionabody
yhtml
yaoffset().top
que le dará el desplazamiento superior del documento, no el padre de desplazamiento previsto.Solución javascript pura con función scrollIntoView () :
El parámetro 'suave' de PS ahora funciona desde Chrome 61 como se menciona en julien_c en los comentarios.
fuente
jquery-animate-body-for-all-browsers .
fuente
Hay un complemento jquery para esto. Desplaza el documento a un elemento específico, de modo que quede perfectamente en el medio de la ventana gráfica. También admite funciones de animación para que el efecto de desplazamiento se vea súper suave. Mira este enlace .
En tu caso el código es
fuente
intente con el siguiente código. crear elementos con desplazamiento de página de nombre de clase y mantener el nombre de identificación
href
de los enlaces correspondientesfuente
para desplazamiento simple, use el siguiente estilo
altura: 200 px; desbordamiento: desplazamiento;
y use esta clase de estilo que div o sección desea mostrar desplazamiento
fuente