技术文摘
借助 IntersectionObserver API 实现页面滚动时左右两侧广告自动隐藏的方法
2025-01-09 17:26:53 小编
在当今的网页设计中,为了提升用户体验,常常需要对页面元素进行动态控制。其中,实现页面滚动时左右两侧广告自动隐藏就是一个很实用的功能。借助 IntersectionObserver API,我们能够轻松达成这一效果。
IntersectionObserver API 是浏览器提供的一个异步 API,用于异步观察目标元素与祖先元素或视口的交叉变化情况。这一特性使得它非常适合用来处理与滚动相关的页面交互。
我们需要在 HTML 中定义好左右两侧的广告元素。通常会将它们放置在页面布局的相应位置,比如使用 CSS 定位将其固定在左右两侧。
接下来就是关键的 JavaScript 代码部分。我们要创建一个 IntersectionObserver 实例。在实例化时,需要传入两个参数。第一个参数是一个回调函数,这个回调函数会在观察目标与根元素的交集状态发生变化时被调用。第二个参数是一个配置对象,用于设置观察的根元素、根元素的边距以及阈值等。
例如:
const adLeft = document.querySelector('.ad-left');
const adRight = document.querySelector('.ad-right');
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
adLeft.style.display = 'block';
adRight.style.display = 'block';
} else {
adLeft.style.display = 'none';
adRight.style.display = 'none';
}
});
}, {
root: null,
rootMargin: '0px',
threshold: 0
});
observer.observe(adLeft);
observer.observe(adRight);
在这段代码中,我们获取到左右两侧的广告元素,然后创建了 IntersectionObserver 实例。当广告元素进入视口(即 isIntersecting 为 true)时,将其显示;当广告元素离开视口时,将其隐藏。
通过这种方式,当用户在页面上滚动浏览内容时,左右两侧的广告会根据它们是否在视口中自动隐藏或显示。这不仅提升了用户在浏览页面时的专注度,减少了广告对用户的干扰,还能使页面的交互更加流畅自然。利用 IntersectionObserver API 实现这一功能,代码简洁高效,也为网页的性能优化做出了贡献。
- 使用 JS + CSS 实现简单加载进度条效果,一篇文章教会你
- 五个前端工具简化 Web 开发过程
- ETS 版数字华容道
- 为何过时的 jQuery 仍是市场占有率最高的 JS 库
- Python 一行代码的奇妙所在!
- 热部署选 Devtools 还是 JRebel ?
- 程序员节的游戏竟用 Python 验证公平性?
- Spring MVC 数据绑定,竟还有人不知?
- 面试官:单例模式的理解与实现
- Rta 广告投放技术的实现与 SaaS 化思考
- Dubbo 配置 Loadbalance 未生效?剖析源码
- 提升 Python 运行速度的三个实用方法
- Vue 源码思想于工作的运用
- 异步编程究竟所指为何?
- 京东七鲜一面经验总结