Javascript 我怎样才能让我只在屏幕上放置一次div,而不在用户滚动时删除它?
我在懒洋洋地把广告加载到我的网站上,只有当用户向下滚动足够远时,我才能让它显示出来,但当用户向后滚动时,div就会消失。我希望这样,当用户第一次看到div时,即使他滚动离开,广告也会出现并停留在那里。我也不希望广告让人耳目一新。我的代码是:Javascript 我怎样才能让我只在屏幕上放置一次div,而不在用户滚动时删除它?,javascript,intersection-observer,Javascript,Intersection Observer,我在懒洋洋地把广告加载到我的网站上,只有当用户向下滚动足够远时,我才能让它显示出来,但当用户向后滚动时,div就会消失。我希望这样,当用户第一次看到div时,即使他滚动离开,广告也会出现并停留在那里。我也不希望广告让人耳目一新。我的代码是: export const handleAds = () => { var myAds; window.addEventListener("load", function(event){ myAds = document.queryS
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:
听起来您想将div浮动到屏幕上的某个绝对位置,但前提是用户首先滚动到它。这是对的吗?嗯,这个div在屏幕上的某个位置,当它出现在视图中时,我希望它显示出来,而这个div@abelhat中的广告不起作用@James South;我还得到了TypeError:IntersectionObserver.Unobserver的参数1没有实现接口元素。编辑:你的解决方案成功了,尽管你提出的论点是错误的
function handleIntersect(entries,observer){
for (var i = 0; i < entries.length; i++){
if(entries[i].isIntersecting){
//ad script
observer.unobserve(entries[i]);
}
}
}