jQuery

2010-07-06 29 views
11

içinde dikey kaydırma olayı var mı scroll() olayıyla bağlandığım bir işleve sahibim, ancak aslında dikey kaydırma durumunda fonksiyonun tetiklenmesini istiyorum (bazı yatay kaydırma da var).jQuery

jQuery belgelerinde böyle bir olasılık görmedim, bunu yapmak için bir numara olabilir mi?

cevap

11

Belirli bir olay yok, ancak önceden depolanmış bir konumdan taşınmış olup olmadığını görmek için .scrollLeft() konumunu test edebilirsiniz. Böyle

şey:

var prevLeft = 0; 
$(document).scroll(function(evt) { 
    var currentLeft = $(this).scrollLeft(); 
    if(prevLeft != currentLeft) { 
     prevLeft = currentLeft; 
     console.log("I scrolled horizontally."); 
    } 
}); 
+0

Hatta bunun düşünmüyordu neden bilmiyorum. Tam olarak aradığım şey çok teşekkürler. (Ben sadece bunun yerine benim durumumda olduğu için scrollTop() kullandım) –

+0

@Michael - Rica ederim. :O) – user113716

0

Bu çalışması gerekir:

var prevLeft = 0; 
$(document).scroll(function(evt) { 
    var currentLeft = $(this).scrollLeft(); 
    if(prevLeft === currentLeft) { 
     console.log("I scrolled vertically."); 
    } 
    else { 
     prevLeft = currentLeft; 
    } 
}); 
3

Ayrıca, özel dikey kaydırma olayını yapmak için .scrollTop kullanabilirsiniz.

var prevTop = 0; 
$(document).scroll(function(evt) { 
    var currentTop = $(this).scrollTop(); 
    if(prevTop !== currentTop) { 
     prevTop = currentTop; 
     console.log("I scrolled vertically."); 
    } 
}); 

Jquery .scrollTop()