禁用“单页”网络应用程序的惯性滚动

2023-11-23

我正在尝试创建一个“单页”网络应用程序,其风格与 Gmail、Google Docs、Evernote 等相同。在这些应用程序中,允许惯性滚动拉动页面是没有意义的。

这是我尝试禁用的效果的视频:

http://tinypic.com/r/2eb6fc5/8

我们怎样才能做到这一点?中列出了解决方案在 Safari 中禁用弹性滚动但它们很旧,不能在 OSX Chrome 上运行,而 Gmail/Google Docs/Evernote 显然有一个适用于所有 OSX 浏览器的解决方案。


2020 年 5 月更新

禁用惯性滚动时,需要考虑一系列与浏览器兼容性有关的注意事项。这是一个试图抽象出这些兼容性问题的存储库:https://github.com/willmcpo/body-scroll-lock

此存储库尝试协调下面列出的两个旧解决方案中的缺点:

2019 年 1 月更新

有一个更简单的 CSS 解决方案:

body {
    overflow: hidden;
}

原答案:

我找到了一个完美的解决方案 - 覆盖滚动事件。

$body.addEventListener("mousewheel", function(e){ e.preventDefault(); });

事实证明,惯性滚动实际上只是正常滚动的扩展,其中特殊的鼠标驱动程序以模拟惯性效果的方式发出滚动事件。因此,覆盖滚动事件本质上会阻止惯性滚动。

有关跨平台兼容性的示例,请参阅此链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用“单页”网络应用程序的惯性滚动 的相关文章

随机推荐

  • 如何将项目添加到 magento 面包屑中

    我想在用户在 magento 前端导航我自己的模块时显示面包屑 该网站已经有适当的面包屑代码 可以根据标准 magento 面包屑在其他地方使用 我需要在模块中做什么来指定当前的面包屑路径 我希望能够以编程方式执行此操作 而不是在面包屑 p
  • postgresql 中不存在函数 min(uuid)

    我使用 sqoop 将表从 Postgres 导入到 hdfs 我的表有 uuid 字段作为主键 我的命令 sqoop 如下 sqoop import connect jdbc postgresql localhost 5432 mydb
  • R reshape2 中的cast()调用的自定义聚合函数出错

    我想使用 R 将具有非唯一行名称的表中的数字数据汇总到具有唯一行名称的结果表 并使用自定义函数汇总值 汇总逻辑是 如果最大值与最小值之比reshape2包裹 example table with non unique row names t
  • R 中的情感分析(不使用 tm.plugin.tags)

    我正在使用 R 版本 3 0 2 并已安装该软件包tm 之前我还加载了一个名为tm plugin tags 为了衡量文本语料库是正面还是负面 我使用了以下方法 library tm library tm plugin tags pos lt
  • eclipselink/Moxy:基于类型的继承和属性名称重载

    我面临着使用 MOXy 的 JAXB 实现和外部元数据绑定文件进行继承和多态性的编组 解组问题 我无法控制 XML 文件或模型类 模型内部有多个继承其他 DTO 类的类 这是我正在工作的环境的示例 这个示例仅出于某些语法目的 真实的环境涉及
  • 启动定位策略

    我通过 GPS 定期接收位置更新 问题是距离第一次位置更新发生的时间 太长了 当用户在建筑物内时 情况会变得更糟 因此我正在寻找一些策略来改善启动时间 目前我不使用getLastKnownLocation但我会 我开始读书深入了解位置得到一
  • PHP 7.2 中 mcrypt_encrypt 的完全替代方案

    由于 PHP 7 2 不再支持 mcrypt crypt 我正在尝试精确替代该函数 在阅读了许多 SO 答案后 我发现以下代码使用 PHPSECLIB 但它没有生成与 mcrypt 一样的精确加密文本 function encryptRJ2
  • XAML:如何仅在设计模式下更改背景颜色?

    我有一个具有白色文本前景色和透明背景色的控件 稍后此用户控件将被添加到带有真实背景颜色的不同控件中 然而在设计过程中 在VS 2010中控制白色背景上的白色前景 我明显看不到任何东西 无论如何 要在设计时定义不同的颜色吗 我已经尝试过这个
  • 生成二维数组的梯度图

    我有一个二维数组 它将每个点的属性值存储为其元素 f x y f x y 现在我想找到这个数组的梯度 我调查了np gradient但它只给出两个数组作为返回 第一个在 x 方向上具有导数 第二个在 y 方向上具有导数 我想了解如何使用此方
  • 如何在按下按钮时继续执行工作?

    我想在按下按钮时使用 Java 继续执行工作 当释放按钮时 工作应该停止 像这样的东西 Button is pressed for int i 0 i lt 100 i count i print count 我怎样才能实现这个目标 One
  • TypeScript 中必需的泛型类型与推断的泛型类型

    以下泛型类型之间有什么区别 type FnWithRequiredParam
  • 如何获取 Solr 中最后一个索引记录?

    我想知道如何获取 搜索 Apache Solr 中的最后一个索引记录 当现有记录更新时 它会转到所有记录的末尾 所以我想获取最后一个索引记录 thanks 您可以将 时间戳 字段添加到 Solr 架构中 该字段在添加时将当前日期 时间放入记
  • 如何读取带有 Alpha 通道的 gif 动画

    在 MATLAB 中对 gif 动画进行一些测试时 我意识到我无法读取 gif 的透明度 Example gif的原始来源 If I do img cmap imread Finnandjake gif img是 4D 具有冗余的第三维 奇
  • Joi 验证正则表达式或模式

    我想加入使用在变量中定义的正则表达式模式 我有一个变量pattern其中包含正则表达式 IE pattern 0 9 7 0 9 1 这个模式发送到 Joi 模块并想要确认 module exports save body match Jo
  • 无 RDP 时自动发送密钥失败

    我有一个虚拟机 我希望在其上运行自动化任务 即自动化任务在实际虚拟机上运行 VM 是 Windows 2008 服务器 我已将该任务添加到任务计划程序中 当我通过 RDP 登录到计算机时 我可以通过右键单击 运行 来运行该任务 但是 当我的
  • switch语句:default必须是最后一种情况吗?

    考虑以下switch陈述 switch value case 1 return 1 default value fall through case 2 return value 2 该代码可以编译 但它对于 C90 C99 有效 定义的行为
  • 将大图像加载到位图中?

    我正在尝试制作一个显示来自相机的图像的基本应用程序 但是当我尝试使用 sdcard 加载 jpg 时BitmapFactory decodeFile 它返回 null 它不会给出我觉得奇怪的内存不足错误 但完全相同的代码在较小的图像上运行良
  • 文件名包含空格的 Shell 脚本问题

    我知道处理文件名中空格的一种技术是用单引号将文件名引起来 为什么下面的代码 echo sh 可以在包含带空格的文件名的目录上工作 但是程序 ls sh 却不起作用 唯一的区别是 echo 被 ls 替换了 echo sh bin sh fo
  • Mongoose 模型枚举的自定义错误消息

    我想自定义我的 Mongoose 模型生成的验证消息 我倾向于不直接将我的验证 例如必需的 放在模式对象上 因为没有自定义错误消息的自由 例如 sourceAccountId type Schema ObjectId require tru
  • 禁用“单页”网络应用程序的惯性滚动

    我正在尝试创建一个 单页 网络应用程序 其风格与 Gmail Google Docs Evernote 等相同 在这些应用程序中 允许惯性滚动拉动页面是没有意义的 这是我尝试禁用的效果的视频 http tinypic com r 2eb6f