Я собираюсь анимировать прокрутку до определенного идентификатора при загрузке страницы. Я провел много исследований и наткнулся на следующее:
$("html, body").animate({ scrollTop: $('#title1').height() }, 1000);
но похоже, что это начинается с идентификатора и анимируется в верхней части страницы?
HTML (который находится на полпути вниз по странице) просто:
<h2 id="title1">Title here</h2>
Ответы:
Вы только прокручиваете высоту своего элемента. offset () возвращает координаты элемента относительно документа, а
top
param даст вам расстояние до элемента в пикселях по оси Y:А еще к нему можно добавить задержку:
источник
scroll
. Имея это в виду, вы должны добавить текущую позицию прокруткиbody
кoffset().top
позиции элемента, который мы хотим видеть. Результирующая сумма - это значение, до которого мы хотим прокрутить.$('html, body').animate({ scrollTop: ($('html, body').scrollTop() + $('#title1').offset().top) }, 1000);
.offset().top
даст вам отрицательное число в этом случае. И это действительно работает только дляbody
иhtml
посколькуoffset().top
даст вам верхнее смещение документа, а не предполагаемый родительский элемент прокрутки.Решение на чистом javascript с функцией scrollIntoView () :
Параметр PS 'smooth' теперь работает в Chrome 61, как упоминалось в комментариях julien_c .
источник
jquery-animate-body-for-all-browser .
источник
Для этого есть плагин jquery. Он прокручивает документ к определенному элементу, чтобы он находился идеально посередине области просмотра. Он также поддерживает замедление анимации, чтобы эффект прокрутки выглядел очень плавным. Проверить эту ссылку .
В вашем случае код
источник
попробуйте со следующим кодом. сделать элементы с именем класса page-scroll и сохранить имя идентификатора
href
соответствующих ссылокисточник
для простой прокрутки используйте следующий стиль
высота: 200 пикселей; переполнение: прокрутка;
и используйте этот класс стиля, какой div или раздел вы хотите показать, прокрутите
источник