javascript - 网页长列表项印象

标签 javascript html impressions

假设我们有一个很长的列表,那么有些项目可能一开始就看不到。

用户滚动屏幕后,会看到更多项目。

<ul>
    <li>
    <li>
    <li>
    --------not seen at the beginning-------
    <li>
    <li>
    <li>
    ....
</ul>

判断用户看到哪个项目的最佳做法是什么?

可能被称为印象,但我找不到任何相关信息。

最佳答案

在任何 HTML 元素上,您可以使用 getBoundingClientRect() 获取其在屏幕上的位置:

const rect = element.getBoundingClientRect();

结果是一个具有属性 toprightbottomleft 的对象宽度高度

您还应该检查窗口高度:

const height = window.innerHeight;

现在,您可以将元素边界矩形的 topbottom 值与窗口高度进行比较,以确定它是否可见:

function isVisible(rect, height) {
    return rect.top >= 0 && rect.bottom < height;
}

您可能还想检查显示的元素的百分比(取决于您决定开始计算展示次数的时间:完整 View 或部分 View )。

关于javascript - 网页长列表项印象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45187063/

相关文章:

android - admob 广告频率(频率上限)如何运作?

reactjs - 滚动后如何检查元素是否可见? (跟踪展示次数和点击次数)

javascript - 如何暂停setTimeout然后继续执行?

javascript - 我如何在谷歌扩展中打开/关闭 content_scripts?

javascript - 如何使用 html、css、javascript 和 php 和 mysql 作为后端为网站创建登录页面?

html - 为什么 column 和 wrap 中的 flexbox 坏了

javascript - 如何防止对象/数组突变?

Javascript列表像数据结构?

javascript - 将数组值放入不同的 html 文本框中

mysql - 如何确定是否可以从 impressions 表中删除某些索引