这个网站使用了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); // 开始观察元素  
});  

上述代码仅作为示例,实际使用时需要根据实际需求进行调整。