📜  javascript 获取滚动位置 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:38.013000             🧑  作者: Mango

JavaScript 获取滚动位置

在网页中,当滚动条滚动时,我们有时需要获取滚动条的位置。这可以通过 JavaScript 来实现。本文将介绍如何使用 JavaScript 获取滚动位置。

方法一:使用 document.documentElement 或 document.body

我们可以通过获取 document 对象中的 documentElementbody 属性来获取滚动位置。

const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

上述代码中,scrollTop 变量存储了滚动位置的值。如果 documentElement 对象不存在或其 scrollTop 属性为 undefined,则取 body 对象的 scrollTop 属性。

需要注意的是,document 对象是 HTML 文档的根节点,documentElement 属性表示文档元素(即 <html> 标签),body 属性表示文档的主体部分。

方法二:使用 window.pageYOffset

window 对象是 JavaScript 中的全局对象,它代表浏览器的窗口。我们可以通过 window.pageYOffset 属性来获取窗口滚动条的垂直偏移量。

const scrollTop = window.pageYOffset;

上述代码中,scrollTop 变量存储了滚动位置的值。

方法三:使用 window.scrollY

window.pageYOffset 方法类似,我们还可以使用 window.scrollY 属性来获取窗口滚动条的垂直偏移量。

const scrollTop = window.scrollY;

上述代码中,scrollTop 变量存储了滚动位置的值。

示例代码

下面是一个完整的使用示例代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>获取滚动位置</title>
  <style>
    .box {
      width: 200%;
      height: 200%;
    }
  </style>
</head>
<body>
  <div class="box"></div>
  <script>
    const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    console.log(scrollTop);
    // 或者
    const scrollTop2 = window.pageYOffset;
    console.log(scrollTop2);
    // 或者
    const scrollTop3 = window.scrollY;
    console.log(scrollTop3);
  </script>
</body>
</html>

在上述代码中,我们创建了一个 div 元素,并给它设置了样式,使其占据了页面大小的两倍。当鼠标滚动时,我们可以通过 JavaScript 获取滚动位置,并将其输出到控制台中。

总结

使用 JavaScript 获取滚动位置是 Web 开发中常用的操作之一。我们可以通过 document.documentElementdocument.bodywindow.pageYOffsetwindow.scrollY 属性来实现。每种方法都有其优缺点。我们可以根据自己的需求选择合适的方法。