Как выполнить функцию при каждом перемещении пикселя с помощью события scroll () jQuery

#javascript #jquery #scroll

#javascript #jquery #прокрутка

Вопрос:

У меня ситуация, когда мне нужно выполнить простую функцию, когда пользователь прокручивает страницу. Проблема в том, что scroll метод jQuery запускается только с перерывами (очевидно, по дизайну), но мне нужен способ заставить его срабатывать при каждом перемещении пикселя…

Я собрал скрипку js, демонстрирующую, что я имею в виду…

http://jsfiddle.net/nGtSV/1/

То, что я пытаюсь сделать console.log , это запустить в моей скрипке 100 раз, если пользователь прокручивает вниз / вверх 100 пикселей (один раз для каждого пикселя). Возможно ли это?

Комментарии:

1. Событие прокрутки не запускается периодически, оно запускается каждый раз, когда прокручивается поле. Нажатие стрелки прокрутки запускает событие прокрутки, а перетаскивание полосы прокрутки запускает событие прокрутки столько же раз.

2. Да, моя формулировка, вероятно, не идеальна. Я надеялся, что есть способ запустить событие прокрутки для каждого пикселя

3. Это невозможно, и использование setInterval для просмотра положения прокрутки не может фиксировать каждый пиксель движения.

4. Приветствую epascarello, я обновлю свой ответ примером того, чего я пытаюсь достичь … вполне может быть более простой способ

5. Полосы прокрутки не гарантируют прокрутку одного пикселя за раз (и часто этого не делают из-за очевидных физических ограничений), поэтому вы, вероятно, никогда не получите согласованный результат.

Ответ №1:

На мой взгляд, невозможно, чтобы jquery запускал событие при каждом «перемещении пикселя».
Но вы можете повторить свою операцию для каждого пикселя, сохранив предыдущую позицию:

http://jsfiddle.net/Fn3nt/

Комментарии:

1. Бенуа, это умный обходной путь… Я не думаю, что это сработает в моей ситуации — я обновлю свой ответ позже сегодня вечером с дополнительной информацией

Ответ №2:

Используйте:

http://jsfiddle.net/nGtSV/5/