gpt4 book ai didi

javascript - 如何让 Intersection Observer 只将 div 放在屏幕上一次,并且在用户滚动离开时不将其删除?

转载 作者:行者123 更新时间:2023-12-02 23:09:10 26 4
gpt4 key购买 nike

我正在将广告延迟加载到我的网站中,只有当用户向下滚动足够远时我才能让它显示,但当用户向后滚动时,div 就会消失。我希望这样当用户第一次看到 div 时,广告就会出现并停留在那里,即使他滚动离开。我也不希望广告让人耳目一新。我的代码是:

export const handleAds = () => {

var myAds;

window.addEventListener("load", function(event){
myAds = document.querySelector("#theDiv");
createObserver();
},false);

function createObserver(){
var observer;

var options = {
root: null,
rootMargin: "0px",
threshold: 0.2
};

observer = new IntersectionObserver(handleIntersect, options);
observer.observe(myAds);

}


function handleIntersect(entries,observer){

for (var i = 0; i < entries.length; i++){
if(entries[i].isIntersecting){
//ad script
}
}
}

}

最佳答案

在回调中调用unobserve: https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/unobserve

function handleIntersect(entries,observer){

for (var i = 0; i < entries.length; i++){
if(entries[i].isIntersecting){
//ad script
observer.unobserve(entries[i]);
}
}
}

关于javascript - 如何让 Intersection Observer 只将 div 放在屏幕上一次,并且在用户滚动离开时不将其删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57453283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com