举个html的例子
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Intersection Observer</title>
<style>
video {
width: 100%;
height: auto;
}
</style>
</head>
<body>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<video src="//repo.bfw.wiki/bfwrepo/video/modushanghai.mp4" loop controls muted></video>
<script>
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
const video = entry.target;
video.play();
console.log("开始")
// observer.unobserve(video);//解除监听
} else {
const video = entry.target;
video.pause();
console.log("暂停")
// 元素未进入可视区域时执行的操作
}
});
}, {threshold: 0.1}); // 设置阈值为 0.5,表示当元素与视图框相交面积达到一半时开始观察
const videos = document.querySelectorAll('video');
videos.forEach((video) => {
observer.observe(video);
});
</script>
</body>
</html> 网友回复


