Есть ли событие вертикальной прокрутки в jQuery
У меня есть функция, связанная с событием scroll()
, но факт заключается в том, что я хочу, чтобы функция запускалась только в случае вертикальной прокрутки (у меня тоже есть горизонтальная прокрутка).
Я не видел такой возможности в документации jQuery, может быть, есть трюк?
Ответы
Ответ 1
Не существует определенного события, но вы можете проверить положение .scrollLeft()
, чтобы увидеть, переместилось ли оно из ранее сохраненной позиции.
Что-то вроде этого:
var prevLeft = 0;
$(document).scroll( function(evt) {
var currentLeft = $(this).scrollLeft();
if(prevLeft != currentLeft) {
prevLeft = currentLeft;
console.log("I scrolled horizontally.");
}
});
Ответ 2
Вы также можете использовать .scrollTop
для создания настраиваемого события вертикальной прокрутки.
var prevTop = 0;
$(document).scroll( function(evt) {
var currentTop = $(this).scrollTop();
if(prevTop !== currentTop) {
prevTop = currentTop;
console.log("I scrolled vertically.");
}
});
Jquery.scrollTop()
Ответ 3
Это должно работать:
var prevLeft = 0;
$(document).scroll( function(evt) {
var currentLeft = $(this).scrollLeft();
if(prevLeft === currentLeft) {
console.log("I scrolled vertically.");
}
else {
prevLeft = currentLeft;
}
});