Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Событие - остановка скроллинга документа (https://javascript.ru/forum/misc/24073-sobytie-ostanovka-skrollinga-dokumenta.html)

Kelly 17.12.2011 02:02

Событие - остановка скроллинга документа
 
Столкнулся с такой проблемой - как собственно отловить момент когда пользователь перестал прокручивать документ и оставил его в покое.
В интернете как раз много описано как делается наоборот.

p.s. а может я изначально не в том направлении начал думать. задача - есть последовательность блоков - который виден - ему ставится класс active и задача - подскролливать этот блок к верху экрана.
Подкиньте идею:blink:

trikadin 17.12.2011 02:04

Поищите, здесь была такая тема. Найдёте там информацию.

P. S. И ещё, по-моему, я это на хабре встречал.

Kelly 18.12.2011 01:19

К сожалению не нашел. Если не трудно можете вспомнить как примерно тема называлась?

Nekromancer 18.12.2011 02:43

В каком смысле перестал? Пока происходит событие scroll пользователь скролит. Событие не происходит, значит никто ничего не делает. Разве что когда текст выделяют и тянут вниз мышку, событие не вызывается. Но после события scroll обычно никто ничего не скролит :)

trikadin 18.12.2011 02:54

Цитата:

Сообщение от Nekromancer
В каком смысле перестал? Пока происходит событие scroll пользователь скролит. Событие не происходит, значит никто ничего не делает. Разве что когда текст выделяют и тянут вниз мышку, событие не вызывается. Но после события scroll обычно никто ничего не скролит

Да нет, имеется в виду окончание скролла. То есть что человек поскроллил, а потом отпустил.

Статью не нашёл, но суть решения была примерно такая: при начале скролла запоминаем время последнего скролла и ставим таймер (если его ещё нету). В таймере проверяем: если в течении небольшого времени ничего не обновилось - скролл кончился. Решение не очень, но другого нет.

Aetae 18.12.2011 03:55

Ога, onscroll clearTimeout setTimeout.
Иожно ещё флаг добавить на mousedown/mouseup.

Livanderiaamarum 19.12.2011 15:16

Цитата:

Сообщение от trikadin (Сообщение 144029)
Да нет, имеется в виду окончание скролла. То есть что человек поскроллил, а потом отпустил.

Статью не нашёл, но суть решения была примерно такая: при начале скролла запоминаем время последнего скролла и ставим таймер (если его ещё нету). В таймере проверяем: если в течении небольшого времени ничего не обновилось - скролл кончился. Решение не очень, но другого нет.

а как понять перестал скроллить? как он поскроллил значит он перстал скроллить. то есть вешай действие на событие скроллинг. В ЧЕМ ПРОБЛЕМА?

отвечаю еще раз ЧЕЛОВЕК ПЕРЕСТАЛ СКРОЛЛИТЬ ТОГДА КОГДА ОН ПРОСКРОЛЛИЛ, А СКРОЛЛЛИНГ ПРОИСХОДИТ МОМЕНТАЛЬНО, ТО ЕСТЬ МОМЕНТАЛЬНО ПОСЛЕ СОБЫТИЯ СКРОЛЛИНГА МОЖНО ОБРАБАТЫВАТЬ ЕГО ОТСУТСТВИЕ.


а если я понял что ты не правильно выразился то тебе нужно узнать вот что как получить событие когда человек НЕ СКРОЛЛИЛ ДОКУМЕНТ ЕЩЕ N ВРЕМЕНИ ПОСЛЕ СКРОЛЛИНГА?

Nekromancer 19.12.2011 15:23

Поставьте уже фильтр в lowercase и отмену форматирования для пользователей с репутацией < 0.

Livanderiaamarum 19.12.2011 15:41

Цитата:

Сообщение от Nekromancer (Сообщение 144470)
Поставьте уже фильтр в lowercase и отмену форматирования для пользователей с репутацией < 0.

поставь себе скрипт корректор

Nekromancer 19.12.2011 15:48

Проще тебя в игнор запихнуть :)


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