2014-09-11 2 views
0

Мне нужно ответить пользователю, который вручную прокручивает элемент с полосой прокрутки.Событие, которое срабатывает только в том случае, если * пользователь * прокручивает элемент?

К сожалению, scroll событие происходит на том же элементе в нескольких различных обстоятельствах:

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

Есть ли способ изолировать только первый случай и иметь триггер обработчика только тогда, когда пользователь буквально прокручивает элемент?

ответ

0

Я не знаю, является ли это то, что вы ищете, но, как сказано в this page, вы можете проверить event.target, чтобы проверить, находится ли ваш свиток на нужном элементе.

+0

Цель события одинакова во всех обстоятельствах, которые я перечислял, поэтому нет, я не могу использовать это, чтобы различать их. – Timwi

+0

Являются ли события целевыми как [Объект HTMLElement]? если бы вы попытались сравнить JSON.stringify (event.target)? – Hotted24

+0

Google Chrome фактически показывает фактический элемент, когда вы идете 'console.log (e.target)', поэтому я могу сказать, что это тот же самый элемент. – Timwi

0

Вы можете предотвратить всплеск события прокрутки с помощью preventDefault() столько, сколько я могу вспомнить. Поэтому, если вы зарегистрируете событие прокрутки (j-query) на элементе управления и не дожидаетесь его пузырьков до других элементов управления, я думаю решит то, что вы ищете.

+0

Это будет работать, я считаю, но довольно уродливый ... – Hotted24

+1

Извините, что мой вопрос связан с пузырями? Я не вижу связи. – Timwi

+0

Насколько я понимаю, проблема в том, что вы хотите, чтобы событие срабатывало только тогда, когда вы прокручиваете элемент справа? Так что, если вы прокручиваете элемент, и вы останавливаете пузырь, другие элементы управления не будут уведомлены о мероприятие. – Hristo