javascript - 如何检测元素何时滚动到视口(viewport)中

标签 javascript

我的网站底部有一个横幅广告。我正在使用 Google Analytics 事件来跟踪展示次数。问题是,如果用户不滚动到底部,他们将看不到横幅。因此,记录印象会导致不准确,除非我可以等到横幅出现在视口(viewport)中。

如何检测我的横幅广告(id#footer-banner)已进入视口(viewport)?我希望只有在横幅的整个高度可见时才检测到它。

最佳答案

使用 jQuery,您可以:

function isInView() {
  var y = $('foot-banner').position().top;
  var windowY = $(window).scrollTop();
  return y > windowY && y < windowY + $(window).height();
}

那么当滚动事件触发时就可以使用这个函数:

var impressionRecorded = false;
$(document).scroll(function() {
  if (isInView() && !impressionRecorded) {
     impressionRecorded = true;
     // record impression
  }
});

关于javascript - 如何检测元素何时滚动到视口(viewport)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31865815/

相关文章:

javascript - React Hook useEffect 缺少依赖项 : 'props'

javascript - 如何将点分四边形 ipv4 ip 地址转换为唯一的十六进制值/web 颜色?

javascript - 复制方法后的不同行为

javascript - 使用 jQuery 单击时切换跨度文本

javascript - 将输入从 prompt() 传输到文本字段

javascript - Service Worker 在缓存更新时重新加载页面

javascript - 将数据从数据库发送到客户端,而无需使用模板引擎(node.js)

javascript - HTML5 contenteditable div 只接受明文

javascript - window.onload 是否意味着所有内容都已加载?

javascript - 替换选择框中的值