Как сделать скролл js

Обновлено: 08.07.2024

Считай, у меня есть список вопросов. Когда я нажимаю на первый вопрос, он автоматически переводит меня в конец страницы.

На самом деле, я знаю, что это можно сделать с помощью jQuery.

Итак, не могли бы вы предоставить мне некоторую документацию или ссылки, где я могу найти ответ на этот вопрос?

РЕДАКТИРОВАТЬ: необходимо прокрутить до определенного элемента HTML в нижней части страницы

21 ответ

JQuery не является необходимым. Большинство главных результатов, которые я получил от поиска Google, дали мне этот ответ:

Там, где у вас есть вложенные элементы, документ может не прокручиваться. В этом случае вам нужно нацелиться на элемент, который прокручивается, и вместо этого использовать его высоту прокрутки.

Вы можете связать это с onclick событием вашего вопроса (т.е.

Некоторые дополнительные источники, на которые вы можете взглянуть:

Очень простой способ

Вызывайте эту функцию, когда хотите прокрутить вниз.

Иногда страница распространяется при прокрутке вниз (например, в социальных сетях), чтобы прокрутить вниз до конца (конечная нижняя часть страницы), я использую этот скрипт:

И если вы находитесь в консоли javascript браузера, может быть полезно иметь возможность остановить прокрутку, поэтому добавьте:

А затем используйте stopScroll(); .

Если вам нужно прокрутить до определенного элемента, используйте:

Или универсальный скрипт для автопрокрутки до определенного элемента (или остановки интервала прокрутки страницы):

Вы можете сделать это тоже с анимацией, это очень просто

Надежда помогает, спасибо

Для прокрутки вниз в Selenium используйте код ниже:

До нижнего выпадающего списка прокрутите до высоты страницы. Используйте приведенный ниже код JavaScript, который будет хорошо работать как в JavaScript, так и в React.

Это будет гарантированная прокрутка вниз

Головные коды

Код тела

Если вы хотите прокрутить всю страницу до конца:

Если вы хотите прокрутить элемент до конца:

И вот как это работает:

enter image description here

Вы можете использовать эту функцию везде, где вам нужно ее вызвать:

Одна картинка стоит тысячи слов:

Примере:

Вы можете сравнить разницу, если нет scrollTo() :

Один вкладыш для плавной прокрутки вниз

Для прокрутки вверх просто установите top на 0

Вы можете попробовать Gentle Anchors хороший плагин для JavaScript.

Пример:

Тестирование на совместимость:

  • Mac Firefox, Safari, Opera
  • Windows Firefox, Opera, Safari, Internet Explorer 5.55+
  • Linux не тестировался, но с Firefox должен быть как минимум

Поздно к вечеринке, но вот простой код только для javascript для прокрутки любого элемента вниз:

Если кто-то ищет Angular

Вам просто нужно прокрутить вниз, чтобы добавить это к вашему div

1e10 - это большое число. так что это всегда конец страницы.

Вы можете использовать это, чтобы перейти вниз по странице в формате анимации.

Реализация Vanilla JS:

Ниже должно быть кросс-браузерное решение. Он был протестирован на Chrome, Firefox, Safari и IE11

Window.scrollTo ( 0 , document.body.scrollHeight ) ; не работает в Firefox, по крайней мере для Firefox 37.0.2

Вы можете присоединить любой id к ссылочному атрибуту href элемента ссылки:

В приведенном выше примере, когда пользователь нажимает Click me внизу страницы, навигация переходит к самому Click me .

Далее представлена кроссбраузерная реализация скроллинга страницы средствами jQuery.

Как всё начиналось


В последнее время на многих сайтах можно увидеть в той или иной вариации кнопки для прокручивания страницы вверх или вниз. Смотрится это довольно мило, удобно в использовании, и просто в реализации. Столкнувшись с проблемой прокрутки объёмного контента в очередном разрабатываемом проекте, решил реализовать подобную функциональность.
Задача была следующая: сделать две кнопки. По нажатию на одну осуществлять прокрутку страницы в самое начало, по нажатию на другую – в самый конец. Также было решено дополнительно реализовать возможности чисто визуального характера, типа анимации, исчезновения кнопок и прочее, здесь я останавливаться на этом не буду, так как тема это – кросбраузерность. Собственно это стало основной проблемой в процессе написания кода.
Нарисовав симпатичные кнопочки, прикрутив анимацию и исчезновение кнопок, и реализовав собственно саму прокрутку, я обнаружил, что в разных браузерах наблюдаются проблемы со скроллингом. Раздосадованный (и почему-то ни капли не удивленный…) этим фактом (а также тем, что не получится уйти с работы пораньше), я решил ознакомиться с аналогичными реализациями в Интернете. Просмотрев несколько примеров, точно также, не воспринимающих какой-либо браузер, а подчас и работающих только в одном определённом, было решено заняться прототипированием, экспериментированием, решением задачи методом тыка (нужное подчеркнуть).
Далее я приведу кроссбраузерный вариант реализации простенького скроллинга страницы вверх/вниз, с пояснениями, где и что может пойти не так и в каком браузере (ни в коем случае не претендую на оригинальность решения, это просто желание поделиться собственным опытом, и сэкономить людям время при решении аналогичных задач). Ах да, забыл оговориться, подавляющая часть кода написана на jQuery.

Подготавливаем основу

HTML код кнопок:

Проблемы начинаются

Теперь начинается самое интересное – JavaScript, а точнее jQuery. Как известно, для организации скроллинга выполняются манипуляции над свойствами scrollTop и scrollLeft. В jQuery эти манипуляции осуществляются при помощи методов .scrollTop() и .scrollLeft() соответственно. Нас интересует только .scrollTop.
Первый, самый простой вариант скроллинга выглядел следующим образом:

Добавим рюшечек и бантиков

Итоговый вариант

Таким образом, рабочий код выглядит следующим образом:

Дополнительно, можно навешать коэффициенты, на которые бы помножалось время или скорость в зависимости от пути для обеспечения больше гибкости, но на этом я уже не буду останавливаться.

Резюме

В итоге мы получили очень простую реализацию скроллинга страницы, которая работает в любом современном браузере.
Испытания проводились для DOCTYPE: XHTML 1.0 Strict в браузерах Chrome 10, Opera 10, Opera 11, Firefox 4, Internet Explorer 8, Internet Explorer 9.

jQuery как сделать?

Как вам известно, по нажатию на якорную ссылку нас перекидывает на ту часть страницы с которой эта ссылка связана. Сам переход происходит мгновенно и этот нюанс мы с вами поправим.

Для того чтобы реализовать плавный переход после нажатия по ссылке, нам необходимо будет написать небольшой скрипт, который отследит момент нажатия, выяснит на какой блок ссылается якорь и плавно прокрутит страницу до нужного места. Но давайте обо всем по порядку 🙂

1. Структура меню с якорными ссылками

Чтобы при нажатии по ссылке мы переходили к определенному блоку, абзацу, необходимо в атрибут href прописать имя идентификатора того блока на который мы хотим сослаться, например:
у нас есть блока

, внутренняя ссылка на этот блок будет иметь следующий вид:
Таким образом все ссылки ссылаются на ID блоков.
Вот и сам код меню из демо-примера:

Каждая ссылка ссылается на соответствующий блок:

2. Скрипт плавного перехода к нужному блоку

Итак нам нужно обработать нажатия по ссылкам в нашем меню, отменить стандартное поведение, выяснить на какой блок ссылается якорь и анимировать переход.

Каждую строку скрипта я прокомментировал, если остались вопросы пиши в комментариях к посту – помогу 😉


От автора: кнопка возврата в верхнюю часть страницы позволяет пользователю быстро вернуться в верхнюю часть страницы, не прилагая особых усилий. Это может быть очень полезно, когда на странице много контента или что происходит, например, на одностраничных веб-сайтах, когда используется бесконечная прокрутка, или на мобильных устройствах, где разные размеры экрана могут привести к расширению прокрутки контента.

Эти кнопки обычно размещаются в нижнем углу сайтов, а затем при нажатии возвращают вас в верхнюю часть страницы. Их довольно легко создать с помощью JavaScript. Но визуально мы хотим, чтобы они были ненавязчивыми, однако при этом оставались достаточно большими, чтобы их можно было коснуться или кликнуть. Давайте рассмотрим несколько способов сделать это, начиная с простого, а затем улучшая вещи по ходу.

Читайте также: