Как определить, было ли событие запущено с полосы прокрутки - PullRequest
6 голосов
/ 15 октября 2011

У меня есть div, в котором я реализовал iPad как смахивание.

Проверьте, что я имею в виду на JSFiddle (Просто нажмите и перетащите вашу мышь в div.)

Я хочу предотвратить смахивание, когда кто-то использует полосу прокрутки (нажмите на полосу прокрутки, затем двигайтесь слева направо, смахивание все еще происходит).

Короче говоря, мне нужно, если (! Event.wasTriggeredFromScrollbar) я могу использовать в любом триггере событий (в данном случае mousedown / move / up).

jQuery и обычные ответы на вопросы Javascript приветствуются.

Отредактировано: чтобы иметь больше смысла.

1 Ответ

4 голосов
/ 17 ноября 2011

Вот как я справился с этим, поскольку на самом деле это кажется невозможным.

Шаг 1: Захват события MouseDown .Сохраните текущую позицию scrollLeft и scrollTop в переменных.

Шаг 2: В событии MouseMove проверьте текущую позицию scrollLeft и scrollTop и сравните их с вашими переменными.Если они разные, отмените все операции, которые вы собирались выполнить.Если они одинаковы, событие MouseDown не было вызвано полосой прокрутки (или чем-либо еще, что могло бы изменить scrollLeft и scrollTop, например другой анимацией), и вы можете делать то, что хотите!

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...