2015-02-05 76 views
0

我试图在滚动过程中抓住div的id,以便可以触发GA事件以跟踪谁滚动到网站的哪个部分。下面是我使用的.js代码:在滚动过程中抓取它时div id为空

function scrollDetect(){ 
     var triggerPoint= Math.round($(window).height()/2); 
      var sections = document.getElementsByClassName("section"); 
      var triggeredSectionArray = []; 
      for(var i = 0; i < sections.length; i++){ 
       triggeredSectionArray[i] = true; 
      } 

$(document).scroll(function(){ 
    for(var i = 0; i < sections.length; i++){ 
     if(($(sections[i]).offset().top-$(window).scrollTop()) < triggerPoint && triggeredSectionArray[i] != false){ 
      var tempElem = sections[i]; 
      alert(sections[i].id); 
      triggeredSectionArray[i] = false; 

     } 
    }}); 

} 

scrollDetect()调用的身体负荷,并检测用户的div的顶部是过去的触发点(我还没有决定什么我想要那个触发点是完全的) - 但是id本身就是一个空字符串。所有的div都在标签中明确定义了id,当我尝试设置id时,它也是这样。

+0

和HTML样子? – epascarello 2015-02-05 21:13:52

+0

一个jsfiddle会非常有帮助 – 2015-02-05 21:16:51

+0

没关系,算出来。 div嵌套,孩子拥有id,而不是“部分”。 – 2015-02-05 21:18:30

回答

0

确保您的文档开头:让jQuery的可以正确计算窗口的高度,并尝试这个办法:

$(window).load(function() { 
    $(window).scroll(function(){ 
    var top = $(window).scrollTop(); 
    var bottom = top + $(window).height(); 

    $(".section").each(function() { 
     if ($(this).offset().top >= top && $(this).offset().top <= bottom) { 
     console.log($(this).attr('id')); //Change this to GA tasks 
     } 
    }); 
    }); 
});