[Javascript] 检测屏幕滑动方向

简介: 要使用 JavaScript 检测屏幕滑动方向,可以监听滚动事件 (scroll) 并与前一个滚动位置进行比较来确定滑动的方向。

要使用 JavaScript 检测屏幕滑动方向,可以监听滚动事件 (scroll) 并与前一个滚动位置进行比较来确定滑动的方向。下面是一个实现示例:

// 存储前一个滚动位置
let previousScrollPosition = window.pageYOffset || document.documentElement.scrollTop;

// 监听滚动事件
window.addEventListener('scroll', function() {
   
  // 获取当前滚动位置
  const currentScrollPosition = window.pageYOffset || document.documentElement.scrollTop;

  // 比较当前位置与前一位置,确定滑动方向
  if (currentScrollPosition > previousScrollPosition) {
   
    // 向下滚动
    console.log('向下滚动');
  } else if (currentScrollPosition < previousScrollPosition) {
   
    // 向上滚动
    console.log('向上滚动');
  }

  // 更新前一位置
  previousScrollPosition = currentScrollPosition;
});

在这个示例中,我们监听 scroll 事件,并在事件处理程序中获取当前的滚动位置和前一个滚动位置。然后,通过比较这两个位置的值,我们可以确定滑动的方向是向上还是向下。

值得注意的是,由于滚动事件的触发频率很高,上面的示例可能会在滑动过程中多次触发。如果只想在滑动结束后确定方向,可以使用 setTimeout 来添加一个延迟。

let previousScrollPosition = window.pageYOffset || document.documentElement.scrollTop;
let scrollingTimeout;

window.addEventListener('scroll', function() {
   
  clearTimeout(scrollingTimeout);

  scrollingTimeout = setTimeout(function() {
   
    const currentScrollPosition = window.pageYOffset || document.documentElement.scrollTop;

    if (currentScrollPosition > previousScrollPosition) {
   
      console.log('向下滚动');
    } else if (currentScrollPosition < previousScrollPosition) {
   
      console.log('向上滚动');
    }

    previousScrollPosition = currentScrollPosition;
  }, 200); // 延迟时间,可以根据需求调整
});

通过添加一个延迟,我们仅在滚动停止一段时间后才确定方向,各位可以根据自己的需求修改代码!~~

相关文章
|
20天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
26天前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
21 2
|
4月前
|
JavaScript
(isCrash方法)【拿来即用】原生JS碰撞检测核心代码
(isCrash方法)【拿来即用】原生JS碰撞检测核心代码
|
7月前
|
JavaScript
JS检测客户端是否安装
JS检测客户端是否安装
|
2月前
|
JavaScript 前端开发 开发者
JavaScript——周技能检测——菜单编辑——2022年11月22日(考完)
JavaScript——周技能检测——菜单编辑——2022年11月22日(考完)
25 0
|
3月前
|
Web App开发 前端开发 JavaScript
JavaScript 内存泄漏的检测与防范:让你的程序更稳定
JavaScript 内存泄漏的检测与防范:让你的程序更稳定
JavaScript 内存泄漏的检测与防范:让你的程序更稳定
|
3月前
|
JavaScript 前端开发 数据处理
JavaScript对象的秘密武器:属性检测技巧大揭秘!
JavaScript对象的秘密武器:属性检测技巧大揭秘!
|
3月前
|
JavaScript 前端开发
JavaScript DOM 操作:如何检测浏览器是否支持某个特性?
JavaScript DOM 操作:如何检测浏览器是否支持某个特性?
25 0
|
4月前
|
JavaScript 前端开发
JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同
JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同
|
7月前
|
JavaScript
JS,Jquery获取各种屏幕的宽度和高度
JS,Jquery获取各种屏幕的宽度和高度