举个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>
网友回复