在滚动期间抓住它时Div id为空

时间:2015-02-05 21:04:33

标签: javascript jquery scroll

我正在尝试在滚动期间获取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;

        }
    }});

}

在body load上调用scrollDetect(),它会检测div的顶部何时超过触发点(我仍在决定我想要的触发点是什么) - 但id本身即将到来作为一个空字符串。所有div都在标记中明确定义了id,当我尝试设置id时,它也会这样做。

1 个答案:

答案 0 :(得分: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
      }
    });
  });
});
相关问题