Событие - остановка скроллинга документа
Столкнулся с такой проблемой - как собственно отловить момент когда пользователь перестал прокручивать документ и оставил его в покое.
В интернете как раз много описано как делается наоборот. p.s. а может я изначально не в том направлении начал думать. задача - есть последовательность блоков - который виден - ему ставится класс active и задача - подскролливать этот блок к верху экрана. Подкиньте идею:blink: |
Поищите, здесь была такая тема. Найдёте там информацию.
P. S. И ещё, по-моему, я это на хабре встречал. |
К сожалению не нашел. Если не трудно можете вспомнить как примерно тема называлась?
|
В каком смысле перестал? Пока происходит событие scroll пользователь скролит. Событие не происходит, значит никто ничего не делает. Разве что когда текст выделяют и тянут вниз мышку, событие не вызывается. Но после события scroll обычно никто ничего не скролит :)
|
Цитата:
Статью не нашёл, но суть решения была примерно такая: при начале скролла запоминаем время последнего скролла и ставим таймер (если его ещё нету). В таймере проверяем: если в течении небольшого времени ничего не обновилось - скролл кончился. Решение не очень, но другого нет. |
Ога, onscroll clearTimeout setTimeout.
Иожно ещё флаг добавить на mousedown/mouseup. |
Цитата:
отвечаю еще раз ЧЕЛОВЕК ПЕРЕСТАЛ СКРОЛЛИТЬ ТОГДА КОГДА ОН ПРОСКРОЛЛИЛ, А СКРОЛЛЛИНГ ПРОИСХОДИТ МОМЕНТАЛЬНО, ТО ЕСТЬ МОМЕНТАЛЬНО ПОСЛЕ СОБЫТИЯ СКРОЛЛИНГА МОЖНО ОБРАБАТЫВАТЬ ЕГО ОТСУТСТВИЕ. а если я понял что ты не правильно выразился то тебе нужно узнать вот что как получить событие когда человек НЕ СКРОЛЛИЛ ДОКУМЕНТ ЕЩЕ N ВРЕМЕНИ ПОСЛЕ СКРОЛЛИНГА? |
Поставьте уже фильтр в lowercase и отмену форматирования для пользователей с репутацией < 0.
|
Цитата:
|
Проще тебя в игнор запихнуть :)
|
Цитата:
|
Livanderiaamarum,
Проблема в том, что это бредовая идея и таких как ты уж полон форум. |
Цитата:
|
перестаньте флудить пожалуйста. Идею в том что отлавливать скроллинг, потом включать счетчик, отсчитывать какое-то время и если счетчик не сбился - тогда выполнять нужное действие? так я понял?
|
:yes:
|
Цитата:
|
Сделал, работает. Правда в сижу ограниченных знаний всплилы многие косяки. Если кому не трудно можете показать свою реализацию. Мне непонятен момент с началом движения - как удалять таймер. Можно даже не код- а схему ) спасибо
|
Псеводокод:
stopscroll=function() { timer= false; //дальше выполняете всё, что нужно }; window.onscroll=function(){ // тут мог накосячить, не помню название события... if (timer) { cleatTimeout(timer); }; timer=setTimeout(stopscroll, 100); }; |
Часовой пояс GMT +3, время: 17:22. |