Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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时跟踪_Javascript_Jquery_Html_Arrays_Scroll - Fatal编程技术网

Javascript 当用户滚动经过数组中的div时跟踪

Javascript 当用户滚动经过数组中的div时跟踪,javascript,jquery,html,arrays,scroll,Javascript,Jquery,Html,Arrays,Scroll,是否有一种方法可以设置html元素数组。假设Section_1、Section_2和Section_3在所述阵列内。当用户向下滚动页面时,并且仅在向下滚动时,是否可以检查用户是否按该数组中指定的部分滚动?有点像 var readerLocation=150; 变量内容=['block_1'、'block_2'、'block_3']; 底部=$(窗口).height()+$(窗口).scrollTop(); 高度=$(文档).height(); //如果用户开始滚动,则发送事件 如果(底部>读卡

是否有一种方法可以设置html元素数组。假设
Section_1
Section_2
Section_3
在所述阵列内。当用户向下滚动页面时,并且仅在向下滚动时,是否可以检查用户是否按该数组中指定的部分滚动?有点像

var readerLocation=150;
变量内容=['block_1'、'block_2'、'block_3'];
底部=$(窗口).height()+$(窗口).scrollTop();
高度=$(文档).height();
//如果用户开始滚动,则发送事件
如果(底部>读卡器位置){
log('startedreading');
var i=0;
用于(内容中的块){
console.log(内容[i]);
//检查此处是否滚动到数组中的元素()
i++;
}

}
您可以做的是设置一个
$(窗口).scroll()
事件


对于数组中的每个元素,您希望找到其在页面中的偏移量,并将其与当前的
$(窗口)进行比较。每当它经过
第1节
offset().top
时,您就知道它在第1节,而尚未到达第2节。

下面是一个代码示例,它将带您接近您想要的位置:

需要记住的几件事:

  • 通过在数组foreach循环中指定条件来运行代码
  • 确保跟踪变量,而不是动态应用代码
  • 由于您使用的是jQuery,请充分利用
    $(窗口)。滚动
    以跟踪滚动事件
  • $(文档).ready(函数(){
    var lastScrollTop=0,
    block=['block_2','block_5','block_7'];
    $(窗口)。滚动(功能(事件){
    var st=$(this.scrollTop(),
    block_2_offset=$('#'+block[0]).offset().top;
    如果(st>lastScrollTop){
    //低谷
    block.forEach(函数(block,i){
    //检查我们是否通过了向下滚动,然后做一些事情,修改条件以获得更专业的响应
    if(st>=$('#'+content[i]).offset().top){
    //做点什么
    }
    });
    }
    lastScrollTop=st;
    });
    });
    
    div{
    填充底部:500px;
    文本对齐:居中;
    }
    分区:第n个孩子(3){
    背景颜色:蓝色;
    }
    分区:第n名儿童(6){
    背景颜色:黄色;
    }
    分区:第n个孩子(8){
    背景颜色:粉红色;
    }
    
    第一区
    第2区
    第3区
    第4区
    第5区
    第6区
    第7区
    第8区
    第9区
    
    你的读者定位的目的是什么?我认为我没有把握,你觉得这是怎么回事?另外,忽略占位符文本。。。它是Slipsum。
    offset
    是一个函数,因此需要
    offset()。top