2013-09-23 30 views
13

Bir öğenin ~ 100px'lik bir kayma ile yukarı kaydırılıp kaydırılmadığını kontrol etmek istiyorum.Öğenin en üste kaydırılıp kaymadığını kontrol edin

5 altyazı ve arka plan yapmak için 2 sınıflı bir sayfam var.

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

bu düşünüyorum:

<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> 

Şimdi ben bu sınıfların birinin Bu benim son trys biridir

kaydırarak üst ulaştığında, kontrol etmek istiyorum: Bu şuna benzer şimdi benim en yakın denemem ... tabii ki bu kod document.ready içinde ve kodumun sonunda ....

TLDR: Bir öğenin en üste kaydırılıp ilerlemediğini nasıl kontrol edersiniz (ve bazı ofsetler) ?

+1

pencerenin onscroll olay bu i Aradıklarınızla hakkında lloks ne –

cevap

19

Ardından anda kaydırılan mesafeye karşı her elemanını kontrol kaydırma olayını dinlemek zorunda gibi bir şey:

$(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

aradığınız gibi görünüyor ... pozisyona nasıl ulaşacağımı tamamen düzelttim ... ama oraya gitmek için kaydı unuttum ... teşekkürler! 8 dakika içinde kabul et. –

+2

'position()' öğeleri ana öğeye göre konumlandırır, 'ofset()' ifadesini aradığınıza göre bahis yapıyorum. Ayrıca, seçiciniz, .background2' içinde '.background1' için arama yaptığından ve her ikisini de seçmediğinden, seçiciye dikkat edin. – adeneo

+0

Awesome! Bu satır: 'var scrollTop = $ (this) .scrollTop();' tam olarak aradığım şeydi. .offset() 'in neden en üst değerinin hiç değişmediğini anlayamadım. Şimdi ofset değerinin belgeyle ilgili olduğunu görüyorum, bu yüzden kalıcı - bu yüzden onu $ (window) .scrollTop() 'değerine göre karşılaştırmanız gerekiyor. –

İlgili konular