监听滚动条距离

一、使用 window.pageYOffset 和 window.pageXOffset

window.pageYOffset: 返回文档在垂直方向已滚动的像素值。

window.pageXOffset: 返回文档在水平方向已滚动的像素值。

window.addEventListener("scroll", function () {

  const scrollY = window.pageYOffset;

  const scrollX = window.pageXOffset;

  console.log(`垂直滚动距离:${scrollY},水平滚动距离:${scrollX}`);

});

二、使用 document.documentElement.scrollTop 和 document.documentElement.scrollLeft

document.documentElement.scrollTop: 获取文档根元素 `<html>` 在垂直方向的滚动距离。

document.documentElement.scrollLeft: 获取文档根元素 `<html>` 在水平方向的滚动距离。

window.addEventListener("scroll", function () {

  const scrollY = document.documentElement.scrollTop;

  const scrollX = document.documentElement.scrollLeft;

  console.log(`垂直滚动距离:${scrollY},水平滚动距离:${scrollX}`);

});

三、结合 IntersectionObserver API(用于更高级的滚动监听场景)

IntersectionObserver 可以观察目标元素与祖先元素或视口的交叉状态。可以利用它来监听滚动到特定元素的位置。

const targetElement = document.getElementById("target-element");

const observer = new IntersectionObserver((entries) => {

  entries.forEach((entry) => {

    if (entry.isIntersecting) {

      console.log("滚动到了目标元素");

    }

  });

});

observer.observe(targetElement);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yqcoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值