sorcerrer
@sorcerrer
Frontend developer

Как сделать скролл колесиком мыши по якорям?

Концепция: главная страница разделена на 5 неравных(!) по высоте секций, высота каждой секции неопределена (адаптивность).
Задача: сделать вместо стандартного скроллинга колесиком мыши так, чтобы при прокрутке экран плавно перемещался на следующий или предыдущий блок.
Что пробовал: практически все решения из первых 5ти страниц выдачи гугла, включая Scrolify.js, blockScroll.js, Alton.js
Первый неправильно определяет позицию секций, второй ужасно глючит, третий увеличивает высоту блока до 100% от экрана.

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

В общем уважаемые знатоки, вопрос в том, как улучшить мой скрипт или что еще можно использовать. Подскажите пожалуйста, заранее спасибо
  • Вопрос задан
  • 18449 просмотров
Решения вопроса 1
@vedmaka
Как на счет такого алгоритма:
  1. После загрузки документа составляем массив из якорей и их смещения от верха страницы. Отдельную переменную для активного якоря заготавливаем.
  2. Прицепляемся на resize окна и обюновляем значения
  3. По scroll ставим флаг, начинаем анимировать scrollTop до соотв. якоря. По окончании анимации флаг снимаем.
  4. Если скролл вызывается еще раз, а флаг не сброшен - ничего не делаем.


Что-то вроде такого: https://jsfiddle.net/phgsmn8k/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@lnked
Попробуйте может подойдет fullPage
Ответ написан
@Laweb
Веб-разработчик
Такой вариант не подходит?
https://youtu.be/RX5kFtUI7q0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы