2014-01-09 19 views
1

我正在制作一个用户滚动并且到达拇指的地方,发生某些后台操作。 现在做了这种编码,我能够得到的结果,但不知何故,我很困惑,因为它只有一次,然后当我再次滚动到那个位置,它什么都不做。 我使用警报框来达到第5和第7拇指,它只显示一次消息。 我使用这样的事情滚动以达到Dom对象位置,然后执行某些操作

$(document).ready(function() { 


     // Thumb 1 
     var thumb4Target = $("#myImg1").offset().top; 
     var interval = setInterval(function() { 
      if ($(window).scrollTop() >= thumb4Target) { 
       alert('1nd Image Position Obtained'); 
       clearInterval(interval); 
      } 
     }, 0); 

     //Thumb 2 
     var thumb4Target2 = $("#myImg2").offset().top; 

     var interval2 = setInterval(function() { 
      if ($(window).scrollTop() >= thumb4Target2) { 
       alert('2nd Image Position Obtained'); 
       clearInterval(interval2); 
      } 
     }, 0); 

    }); 

检查这个小提琴 LINK

请告诉我在哪里,我在做wrong.Thanks。

+0

而不是使用的0两个间隔的,更好的将是窗口对象使用onscroll事件。而且,对于每个元素,它仅适用于一次,因为您正在清除间隔 –

+0

您能为我做小提琴吗? –

+0

等一下,比你我懒惰的人很快会给你一个正确的答案,也许... –

回答

0

使用scroll事件而不是intervalLIVE DEMO 1或者LIVE DEMO 2

$(window).scroll(function() 
{ 
    var thumb4Target = $("#myImg1").offset().top; 
    var thumb4Target2 = $("#myImg2").offset().top; 

    if ($(window).scrollTop() >= thumb4Target) { 
     alert('1nd Image Position Obtained'); 
    } 
    if ($(window).scrollTop() >= thumb4Target2) { 
     alert('2nd Image Position Obtained'); 
    } 
}); 
+0

嘿,这工作,但它一直警醒,直到下一个拇指位置。 –

+0

@MarcAndre而不是使用'> ='看看使用'==='更好的办法是把'thumb4Target'和'thumb4Target 2'放在滚动处理器外面 –

+0

@Wolff请帮助我。我是一个新手..请创建一个小提琴。 –

相关问题