这个网站使用了Intersection Observer API来实现一种交互效果,当用户与页面中的某个元素发生交互时(例如点击),页面会自动加载并显示该元素的原始图像。
具体来说,网站创建了一个名为io
的对象,用于实现观察者模式。在初始化阶段,它监听了DOM内容加载完成后的事件,并为每个元素创建了一个观察器实例。当元素的交叠比例(intersectionRatio
)大于或等于0时,观察器会触发一个回调函数,将元素的原始源图像设置为src
属性,并取消对元素的观察。
代码示例:
// Intersection Observer API 使用示例
const imgList = document.querySelectorAll('img'); // 获取所有的图片元素
imgList.forEach(img => {
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (Math.abs(entry.intersectionRatio) <= 0) {
setTimeout(() => {
entry.target.src = entry.target.dataset.rawSrc; // 如果元素的交叠比例大于0,则设置源图像为原始图像
}, 0);
// 取消对元素的观察
observer.unobserve(entry.target);
}
});
});
observer.observe(img); // 开始观察元素
});
上述代码仅作为示例,实际使用时需要根据实际需求进行调整。