Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скроллинг страницы с остановкой в определенных точках (https://javascript.ru/forum/misc/75490-skrolling-stranicy-s-ostanovkojj-v-opredelennykh-tochkakh.html)

alexkirsanov850@gmail.com 14.10.2018 20:50

Скроллинг страницы с остановкой в определенных точках
 
Добрый день!

Мучает следующая зада:

предположим, задана точка 500px по у

как сделать так, что бы при скроллинге страницы (прокрутка колесика мыши) осуществлялся скроллинг страницы, а при попадании значения scrollY в диапазон 400-500px скроллинг прекращался и запускался лишь при реальной повторной прокрутке колесика мыши.

j0hnik 14.10.2018 20:53

как отличить повторную реальную прокрутку?

alexkirsanov850@gmail.com 14.10.2018 21:00

Скорее, как в моменте выявить факт повторного поворота колесика мыши

j0hnik 14.10.2018 21:02

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

alexkirsanov850@gmail.com 14.10.2018 21:05

j0hnik,
Не возможно!
Колесико можно крутить 3 раза в секунду, а при скроллинге событие автоматически повторяется, в зависимости от "резкости нажатия" до 2 сек

От того не возможно.

alexkirsanov850@gmail.com 14.10.2018 21:07

j0hnik,
Представтье себе как замечательно было бы при прокрутке страницы иметь возможность акцентировать внимание на определенных блоках или заголовках, посредством остановки скроллинга

Смотришь страницу, скроллишь и она сама останавливается на выбранном элементе

j0hnik 14.10.2018 21:08

тогда я не понимаю что такое
Цитата:

Сообщение от alexkirsanov850@gmail.com
при реальной повторной прокрутке колесика мыши.


alexkirsanov850@gmail.com 14.10.2018 21:15

j0hnik,

Как я понял, при повороте колесика мыши возникает событие onwheel, а потом еще раз возникает и еще и еще, пока значение deltaY не приблизится к 0.

Фактически после поворота колесика мыши имитируются повторные повороты

alexkirsanov850@gmail.com 14.10.2018 21:18

Пример:
window.onwheel = procedure(e) {
     var delta = e.deltaY;
     window.scrollBy(delta);

     document.title = window.delta;
}

посмотрите. Очень наглядно. Эффект "затухания" и событие onwheel возникает многократно

alexkirsanov850@gmail.com 14.10.2018 21:33

j0hnik,
А можно как то очистить очередь событий?


Часовой пояс GMT +3, время: 16:14.