Javascript 当用户单击正确的div时,我可以让脚本运行,但是当div在浏览器上变得可见时,我如何让脚本运行呢?

Javascript 当用户单击正确的div时,我可以让脚本运行,但是当div在浏览器上变得可见时,我如何让脚本运行呢?,javascript,Javascript,我正在尝试运行一组延迟加载的广告,因此只有当用户向下滚动到广告应该显示的页面部分时,它们才可见。我有一个函数,当我点击div时,它可以完成我需要的功能,但是用户不会点击这个div所在的位置。我的代码是: export const handleAds = items => { if (!items) return for (let i = 0; i < items.length; i++) { items[i].addEventListener('click', g

我正在尝试运行一组延迟加载的广告,因此只有当用户向下滚动到广告应该显示的页面部分时,它们才可见。我有一个函数,当我点击div时,它可以完成我需要的功能,但是用户不会点击这个div所在的位置。我的代码是:

export const handleAds = items => {
  if (!items) return

  for (let i = 0; i < items.length; i++) {

    items[i].addEventListener('click', getAds, {
        once: true
      }
    )
  }

  function getAds() {
    const placeholder = document.querySelector('[ad-placeholder]')

    if (placeholder) {
      placeholder.classList.remove('hidden')
      placeholder.classList.add('flex')
    }

    (function() {
      var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true;
      sc.src = '//myads.media/data/js/somescript.js'; sc.charset = 'utf-8';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sc, s);
    })()
  }


}
export const handleAds=items=>{
如果(!items)返回
for(设i=0;i

广告位于页面底部,页脚正上方。因此,鼠标悬停不是一个选项。当光标不在页面的div所在部分时,用户可以使用箭头按钮或鼠标滚轮。因此,我需要在div可见时加载它。如何实现这一点?

您可以获得窗口对象的当前位置。获取window.screenY和元素偏移底部。如果这两个匹配,则加载广告(当然,请将其附加到滚动侦听器)。

如果要跟踪css属性,可以检查此答案


我不想在页面的正确部分加载广告;我不会简单地让它们隐形或上色,那么Olegs的答案可能对你有用。创建一个滚动事件侦听器,将windows位置与页面的该部分进行比较,然后调用代码。这是用于延迟加载的。我现在可以让它与交叉点观察者一起工作,但当我滚动时,div消失了。我只想在看到div的时候做一次。我该怎么做呢?你可以把它保存在每个div的一个布尔变量中。在这种情况下可以使用数组。若div已经看到,那个么可以将特定的索引元素(可能只是最后一个)设置为true,并检查它是否为true。如果是真的,那么不要打电话,否则就打电话。这可能有点复杂,但如果没有看到所有代码,我就没有什么可说的了。