2013-09-23 19 views
13

मैं यह जांचना चाहता हूं कि कोई तत्व ~ 100px के ऑफसेट के साथ शीर्ष पर स्क्रॉल किया गया है या नहीं।जांचें कि क्या तत्व शीर्ष पर स्क्रॉल किया गया है

मुझे पृष्ठभूमि बनाने के लिए 5 सबकंटेंट और 2 कक्षाओं वाला एक पृष्ठ मिला है।

$('.background1', '.background2').position(function(){ 
      if($(this).position().top == 100){ 
      alert('checkThis'); 
     } 
     }); 

मैं इस बारे में सोच:

<div class="background1"> 
Content1 
</div> 
<div class="background2"> 
Content2 
</div> 
<div class="background1"> 
Content3 
</div> 
<div class="background2"> 
Content4 
</div> 
<div class="background1"> 
Content5 
</div> 

अब मैं जाँच करने के लिए, जब इन वर्गों में से एक स्क्रॉल

यह मेरा आखिरी trys में से एक है द्वारा शीर्ष पर पहुंचने से चाहते हैं: यह इस तरह दिखता है अब तक मेरा सबसे करीबी प्रयास है ... बेशक यह कोड document.ready में है और मेरे कोड के अंत में है ....

टीएलडीआर: यह जांचने के लिए कि कोई तत्व शीर्ष पर स्क्रॉल किया गया है (और कुछ ऑफसेट) ?

+1

खिड़की Onscroll घटना क्या आप –

उत्तर

19

आप पुस्तक घटना के लिए सुनने के लिए तो वर्तमान में स्क्रॉल दूरी के खिलाफ प्रत्येक तत्व की जांच की है, की तरह कुछ:

$(window).on('scroll', function() { 
    var scrollTop = $(this).scrollTop(); 

    $('.background1, .background2').each(function() { 
     var topDistance = $(this).offset().top; 

     if ((topDistance+100) < scrollTop) { 
      alert($(this).text() + ' was scrolled to the top'); 
     } 
    }); 
}); 
+0

लिए देख रहे हैं यह मैं क्या खोज के बारे में lloks हो रहा है के लिए ... मैंने पूरी तरह से तय किया कि स्थिति कैसे प्राप्त करें ... लेकिन वहां पहुंचने के लिए स्क्रॉल भूल गया ... धन्यवाद! 8 मिनट में स्वीकार करें। –

+2

'स्थिति()' माता-पिता के सापेक्ष तत्वों की स्थिति प्राप्त करता है, मैं शर्त लगा रहा हूं कि आप 'ऑफसेट()' की तलाश में हैं, जो दस्तावेज़ से संबंधित स्थिति प्राप्त करता है। चयनकर्ता को भी ध्यान दें, क्योंकि आपका चयनकर्ता '.background1' के अंदर' .background1' ढूंढता है, और दोनों का चयन नहीं करता है। – adeneo

+0

बहुत बढ़िया! यह पंक्ति: 'var scrollTop = $ (this) .scrollTop();' वही था जो मैं ढूंढ रहा था। मैं यह नहीं समझ सका कि क्यों .offset()। शीर्ष मान बिल्कुल बदल नहीं रहा था। अब मैं देखता हूं कि ऑफ़सेट मान दस्तावेज़ से संबंधित है, इसलिए यह स्थायी है - यही कारण है कि आपको इसे '$ (विंडो) .scrollTop() 'मान से तुलना करने की आवश्यकता है। –

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