Сколько пикселей прокручивается на веб-сайте с событием колесика мыши вниз? - PullRequest
7 голосов
/ 14 октября 2011

Я работаю над написанием пользовательской полосы прокрутки и ловлю событие колесика мыши.Я использую это для настройки scrollTop элемента, на котором я хочу прокрутить.

Есть ли стандартное количество прокручиваемых вниз пикселей или оно варьируется от системы к системе?

Я показываю 114px в последней сборке Firefox:

enter image description here

Ответы [ 6 ]

10 голосов
/ 14 октября 2011

Многие драйверы мыши позволяют устанавливать расстояние, прокручиваемое колесом мыши, поэтому стандартное расстояние отсутствует.Я бы попробовал ваш код некоторое время и выбрал бы расстояние, которое не дает вам прокручивать весь день, но не прыгает ни на милю при каждой прокрутке.Вы как бы должны «почувствовать» это.Заставьте друзей оставить отзыв, это поможет нескольким рукам дотронуться до такого рода вещи.

3 голосов
/ 22 августа 2014

Я заметил, что в Google Chrome - это 100px за прокрутку мыши

2 голосов
/ 14 октября 2011

Для Firefox у вас есть событие MozMousePixelScroll, которое сообщает количество пикселей, которые должны быть прокручены в e.detail.

window.addEventListener('MozMousePixelScroll', function(e) {
    console.log(e.detail);
});

Для многих других браузеров у вас есть событие mousewheel, которое сообщает e.wheelDeltaY, но они не в пикселях, и вам придется угадывать сумму, которую нужно прокрутить.

Также посмотрите, как SproutCore обрабатывает прокрутку в своей собственной среде (они также пишут свое собственное представление прокрутки): http://blog.sproutcore.com/scrolling-in-sproutcore/

1 голос
/ 14 октября 2011

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

0 голосов
/ 14 октября 2011

Обычно каждый «тик» колеса мыши соответствует некоторому настраиваемому (пользователем) количеству пикселей.

В Windows, например, расстояние, прокручиваемое каждым щелчком мыши, должно быть функцией SystemParametersInfo( SPI_GETWHEELSCROLLLINES, ...) параметр.

Здесь вы можете найти больше информации по теме.

0 голосов
/ 14 октября 2011

Мы можем контролировать с помощью JavaScript. Смотрите ссылку ниже. Я надеюсь, что это поможет вам.

http://deepport.net/archives/javascript-scrolling/

...