MST
星途 面试题库

面试题:JavaScript中如何检测文档滚动到顶部或底部边界

在JavaScript中,编写代码实现当文档滚动到顶部或底部边界时,控制台输出相应提示信息。说明你所使用到的相关属性和方法。
32.2万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
</head>

<body>
    <div style="height: 2000px;"></div>
    <script>
        window.addEventListener('scroll', function () {
            const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
            const clientHeight = document.documentElement.clientHeight;
            const scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight;

            if (scrollTop === 0) {
                console.log('滚动到顶部');
            }

            if (scrollTop + clientHeight === scrollHeight) {
                console.log('滚动到底部');
            }
        });
    </script>
</body>

</html>

使用到的属性和方法

  1. window.addEventListener:用于给window对象添加事件监听器,这里监听scroll事件,当页面滚动时触发回调函数。
  2. document.documentElement.scrollTopdocument.body.scrollTop:这两个属性用于获取页面滚动条距离顶部的位置。在不同浏览器中,scrollTop可能会挂载在document.documentElement 或者 document.body上,所以通过 || 运算符来兼容不同浏览器。
  3. document.documentElement.clientHeight:获取视口的高度,即浏览器窗口中可见区域的高度。
  4. document.documentElement.scrollHeightdocument.body.scrollHeight:获取整个文档的高度,同样通过 || 运算符来兼容不同浏览器。通过比较 scrollTop + clientHeightscrollHeight 是否相等,来判断是否滚动到了底部。