2010-11-29 12 views
6

मेरे पास एक विशेष div पर स्क्रॉल ईवेंट को संभालने के लिए निम्न jquery है और कुछ सामग्री लिखें:मैं कैसे बता सकता हूं कि स्क्रॉलिंग फलक जावास्क्रिप्ट में स्क्रॉल कर रहा है?

$('#myDiv').scroll(function(eventData) { 
    if(eventData.isGoingUp) 
    $('#myDiv').prepend('<p>Going up.</p>'); 
    else 
    $('#myDiv').append('<p>Going down.</p>'); 
}); 

जाहिर है, evt.isGoingUp वास्तव में मौजूद नहीं है। क्या कोई ऐसी चीज है जो अस्तित्व में है जो इस तर्क को पूरा कर सकती है?

उत्तर

4

उम्मीद है कि इस समाधान उपयोगी है आप ... यह वर्ग के नाम के साथ 'सभी तत्वों पर काम करेंगे के लिए scroll- धावन पथ'। '{:, "0" "y": "x" "0"}' डेटा-स्क्रॉल =: तुम भी स्क्रॉल तत्व नामक नई विशेषता प्रदान करनी चाहिए आप इसे यहाँ का परीक्षण कर सकते हैं: http://jsfiddle.net/CgZDD/

-जेएस-

$(document).ready(function(){ 
    // make sure overflow is set to 'scroll' 
    $('.scroll-track').css({ 
     overflow: 'scroll' 
    }); 

    $('.scroll-track').scroll(function() { 
     var scrollData = $(this).data('scroll'); 

     if(scrollData.y > $(this).scrollTop()){ 
      $('#scrollDir').append($(this).attr('id') + ' up'); 
     }else if(scrollData.y != $(this).scrollTop()){ 
      $('#scrollDir').append($(this).attr('id') + ' down'); 
     } 

     if(scrollData.x > $(this).scrollLeft()){ 
      $('#scrollDir').append($(this).attr('id') + ' left'); 
     }else if(scrollData.x != $(this).scrollLeft()){ 
      $('#scrollDir').append($(this).attr('id') + ' right'); 
     } 

     $('#scrollDir').append('<br />'); 

     scrollData.x = $(this).scrollLeft(); 
     scrollData.y = $(this).scrollTop(); 
     $(this).data('scroll', scrollData); 
    }); 
}); 
2

आप पिछले स्क्रॉल मान संग्रहीत और जाँच करें कि क्या मूल्य आई वृद्धि या गिरावट सकता है:

var prev = $('#myDiv').scrollTop(); 
$('#myDiv').scroll(function(eventData) { 
    var cur = $(this).scrollTop(); 
    if (cur > prev) { 
    // scrolled down 
    } else { 
    // scrolled up 
    } 
    prev = cur; 
}); 
संबंधित मुद्दे

 संबंधित मुद्दे