如何在不实际滚动的情况下确定滚动方向

2024-04-06

我正在编写一个页面,其中用户第一次滚动时,它实际上并没有向下滚动页面,而是添加了一个带有转换的类。 我想检测用户何时向下滚动,因为如果他向上滚动,我希望它执行其他操作。 我发现的所有方法都是基于定义当前的body ScrollTop,然后在页面滚动后与body的scrollTop进行比较,定义方向,但由于页面实际上并没有滚动,所以body的scrollTop()不会'改变。

animationIsDone = false;

function preventScroll(e) {

    e.preventDefault();
    e.stopPropagation();
}

$('body').on('mousewheel', function(e) {

    if (animationIsDone === false) {
        $("#main-header").removeClass("yellow-overlay").addClass("yellow-overlay-darker");
        $(".site-info").first().addClass("is-description-visible");
        preventScroll(e);

        setTimeout(function() {
            animationIsDone = true;
        }, 1000);

    }


});

这就是我所带来的,但这样我滚动的方向并不重要,它会触发事件


The mousewheel事件很快就会过时。你应该使用wheel事件代替。

这也可以轻松地允许您在没有滚动条的情况下垂直和/或水平滚动方向。

该事件在当前所有主要浏览器中都得到支持,并且在很长的将来应该仍然是标准。

这是一个演示:

window.addEventListener('wheel', function(event)
{
 if (event.deltaY < 0)
 {
  console.log('scrolling up');
  document.getElementById('status').textContent= 'scrolling up';
 }
 else if (event.deltaY > 0)
 {
  console.log('scrolling down');
  document.getElementById('status').textContent= 'scrolling down';
 }
});
<div id="status"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不实际滚动的情况下确定滚动方向 的相关文章

  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • 如何让 jquery Tooltipster 插件适用于新创建的 DOM 元素?

    我正在使用 Tooltipster 插件http calebjacob com tooltipster http calebjacob com tooltipster 这很棒 但我已经动态生成了插入到 DOM 中的内容 工具提示程序似乎没有
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • IE 中的 jQuery .width(val) 错误 - 无效参数

    通过ajax加载内部div book table 后 我想调整正文的宽度以适应更大的内容 var new width parseInt book table css width 407 body width new width 在 FF 和
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式

随机推荐

  • PHP 的 require 和 include 有什么区别?

    我知道PHP require require一次 include和includeonce的基本用法 但我对何时应该使用它们感到困惑 示例 我有 3 个文件 例如 settings php database php 和 index php 在
  • Cocoapods 不工作 Xcode 9.2

    Cocoapods 已安装但无法工作 Xcode 9 2 我尝试了这些解决方案https github com CocoaPods CocoaPods issues 3777 https github com CocoaPods Cocoa
  • 在调试中禁用应用程序洞察

    如何在使用调试配置时自动禁用应用程序洞察并仅在发布时启用它 是否可以在不创建另一个仅用于调试的仪器密钥的情况下执行此操作 I have trackevent语句分散在代码中 将它们包含在调试预处理器检查中并不是理想的解决方案 我当前的解决方
  • 如何告诉 find 命令转义文件名中的空格字符?

    我有一个单行 find 命令 它递归地检查并打印出在特定时间范围内创建的特定文件类型的大小 所有者和名称 但在结果中 给出文件名列 直到目录或文件名中的第一个空格字符为止 有没有办法在这个单一命令中解决这个问题 而无需在 bash 中编写任
  • 在android中使用OpenGL在按钮上单击绘制形状

    作为 android OpenGL 部分的新手 我已经下载了现场给出的示例使用 OpenGL ES 显示图形 http developer android com training graphics opengl index html so
  • Chrome 中的 Javascript 执行跟踪 - 如何进行?

    我在网站上加载了约 100 200 个 JavaScript 函数 我想确定当我单击 Google Chrome 中的一项或多项时执行什么 JavaScript 函数 我如何使用 Chrome Web 开发人员工具来做到这一点 谢谢 一种简
  • 基于流的应用程序中的受控/手动错误/恢复处理

    我正在开发一个基于的应用程序Apache Flink 它利用Apache Kafka用于输入和输出 该应用程序可能会被移植到Apache Spark 所以我也将其添加为标签 问题仍然相同 我要求通过 kafka 接收的所有传入消息必须按顺序
  • Cloud Firestore 中 get() 和 onSnapshot() 之间的区别

    我正在从 Firebase 的 Cloud Firestore 读取一些数据 但我已经看到了几种方法来做到这一点 我看到的示例使用了 get 和 onSnapshot 函数 如下所示 db collection cities doc SF
  • 测试:单元、集成、其他,分离的必要性是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 对于问题我是单元测试还是集成测试 https stackoverflow com questions 516572我已经回答了 有点挑衅 进行测
  • 如何检查$compile是否已经完成?

    我正在编写一个函数 可以根据 HTML 模板和给出的一些信息创建电子邮件模板 为此 我正在使用 compile角的函数 只有一个问题我似乎无法解决 该模板由一个基本模板和无限数量的ng include的 当我使用 最佳实践 时 timeou
  • AngularJS:带去抖功能的 $watch

    我有以下代表搜索字段的 html
  • 错误:CFBundleVersion 必须高于之前上传的版本

    我想上传我的应用程序的新版本 我在 iTunes 中的应用程序的旧版本是 2 1 我正在上传新版本 2 2 但是当我尝试验证我的应用程序时 它会给出错误 CFBundleVerion must be higher than the prev
  • 如何在 R 中的稀疏矩阵中查找并命名连续的非零条目?

    我的问题在概念上很简单 我正在寻找一种计算有效的解决方案 我自己的解决方案附在最后 假设我们有一个可能非常大的稀疏矩阵 如下左图所示 并且想要用单独的代码 命名 连续非零元素的每个区域 请参见右侧的矩阵 1 1 1 1 1 1 1 1 1
  • Jquery:检查第一个实例

    在获取奇怪的输出并将其转换为可读的剧本格式时遇到一些麻烦 这是 HTML div p class actor John p p class line I want to buy milk p p class actor John p p c
  • MySQL - 如何将“使用连接缓冲区(块嵌套循环)”添加到查询中?

    当我在笔记本电脑上运行查询时 执行时间大约需要一秒钟 但在生产环境中 查询会持续 57 秒 并且它会导致应用程序崩溃 这是用 Ruby On Rails 编写的 我运行这个查询EXPLAIN并发现在我的笔记本电脑上是在执行的查询中的一张表上
  • 面试期间用于编码测试的 OOP 问题 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 作为第二次采访 我让人们坐下来编写代码 我尝试使问题真正独立于技术 我遇到的编程问题并没有真正锻炼人们的面向对象能力 我倾向于尝试在
  • 我们如何强制将邮箱项目持久保存到 EWS?

    Note 这一特殊问题对我们的客户产生重大影响 这会转化为巨大的业务影响 对收入产生直接影响 TL DR 当用户在撰写电子邮件草稿时与我们的加载项交互时 我们的 Outlook Office 加载项如何最大限度地缩短电子邮件草稿发送之前所需
  • 如何快速获取MongoDB pymongo的所有文档

    目前我通过在 pymongo 中迭代游标来获取文档 例如 for d in db docs find mylist append d 作为参考 对同一组数据 700 万条记录 执行 fetchall 大约需要 20 秒 而上述方法需要几分钟
  • 使用 group_by 连接字符串并在 r 中汇总[重复]

    这个问题在这里已经有答案了 我正在尝试根据分组将一列字符串连接在一起 我使用的代码对我来说似乎与其他人使用的代码相同 例如使用 dplyr 连接列 https stackoverflow com questions 28752805 use
  • 如何在不实际滚动的情况下确定滚动方向

    我正在编写一个页面 其中用户第一次滚动时 它实际上并没有向下滚动页面 而是添加了一个带有转换的类 我想检测用户何时向下滚动 因为如果他向上滚动 我希望它执行其他操作 我发现的所有方法都是基于定义当前的body ScrollTop 然后在页面