#javascript #jquery #scroll
#javascript #jquery #прокрутка
Вопрос:
У меня ситуация, когда мне нужно выполнить простую функцию, когда пользователь прокручивает страницу. Проблема в том, что scroll
метод jQuery запускается только с перерывами (очевидно, по дизайну), но мне нужен способ заставить его срабатывать при каждом перемещении пикселя…
Я собрал скрипку js, демонстрирующую, что я имею в виду…
То, что я пытаюсь сделать console.log
, это запустить в моей скрипке 100 раз, если пользователь прокручивает вниз / вверх 100 пикселей (один раз для каждого пикселя). Возможно ли это?
Комментарии:
1. Событие прокрутки не запускается периодически, оно запускается каждый раз, когда прокручивается поле. Нажатие стрелки прокрутки запускает событие прокрутки, а перетаскивание полосы прокрутки запускает событие прокрутки столько же раз.
2. Да, моя формулировка, вероятно, не идеальна. Я надеялся, что есть способ запустить событие прокрутки для каждого пикселя
3. Это невозможно, и использование setInterval для просмотра положения прокрутки не может фиксировать каждый пиксель движения.
4. Приветствую epascarello, я обновлю свой ответ примером того, чего я пытаюсь достичь … вполне может быть более простой способ
5. Полосы прокрутки не гарантируют прокрутку одного пикселя за раз (и часто этого не делают из-за очевидных физических ограничений), поэтому вы, вероятно, никогда не получите согласованный результат.
Ответ №1:
На мой взгляд, невозможно, чтобы jquery запускал событие при каждом «перемещении пикселя».
Но вы можете повторить свою операцию для каждого пикселя, сохранив предыдущую позицию:
Комментарии:
1. Бенуа, это умный обходной путь… Я не думаю, что это сработает в моей ситуации — я обновлю свой ответ позже сегодня вечером с дополнительной информацией
Ответ №2:
Используйте: