我正在尝试在滚动期间获取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时,它也会这样做。
答案 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
}
});
});
});