Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在滚动期间抓取Div id时为空_Javascript_Jquery_Scroll - Fatal编程技术网

Javascript 在滚动期间抓取Div id时为空

Javascript 在滚动期间抓取Div id时为空,javascript,jquery,scroll,Javascript,Jquery,Scroll,我试图在滚动期间获取一个div的id,这样我就可以触发一个GA事件来跟踪谁正在滚动到站点的哪个部分。下面是我正在使用的.js代码: function scrollDetect(){ var triggerPoint= Math.round($(window).height() / 2); var sections = document.getElementsByClassName("section"); var triggered

我试图在滚动期间获取一个div的id,这样我就可以触发一个GA事件来跟踪谁正在滚动到站点的哪个部分。下面是我正在使用的.js代码:

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在body load时被调用,它检测div的顶部何时超过触发点我仍在决定我希望该触发点是什么,但id本身是一个空字符串。所有div都在标记中明确定义了id,当我尝试设置id时,它也会这样做。

确保文档以:开头,以便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
      }
    });
  });
});

html看起来像是什么?JSFIDLE真的很有用,不管怎样,我明白了。div是嵌套的,孩子有id,而不是section。我投票结束这个问题,因为OP在评论中说他已经解决了这个问题。