Javascript 我怎样才能让我只在屏幕上放置一次div,而不在用户滚动时删除它?

Javascript 我怎样才能让我只在屏幕上放置一次div,而不在用户滚动时删除它?,javascript,intersection-observer,Javascript,Intersection Observer,我在懒洋洋地把广告加载到我的网站上,只有当用户向下滚动足够远时,我才能让它显示出来,但当用户向后滚动时,div就会消失。我希望这样,当用户第一次看到div时,即使他滚动离开,广告也会出现并停留在那里。我也不希望广告让人耳目一新。我的代码是: export const handleAds = () => { var myAds; window.addEventListener("load", function(event){ myAds = document.queryS

我在懒洋洋地把广告加载到我的网站上,只有当用户向下滚动足够远时,我才能让它显示出来,但当用户向后滚动时,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:


听起来您想将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]);
    }
  }
}