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