在滚动过程中抓住Div id时,Div id为空

Div id empty when grabbing it during a scroll

本文关键字:Div id 为空 滚动 过程中      更新时间:2023-09-26

我试图在滚动过程中获取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;
        }
    }});
}

scrollDetects()在body加载时被调用,它检测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
      }
    });
  });
});