禁用iOS弹性体滚动并保持本机滚动工作[重复]

2023-11-30

我目前正在开发一个针对触摸设备(主要是 iOS)进行优化的单页 Web 应用程序。我已经通过以下方式实现了新的 iOS 原生滚动-webkit-overflow-scrolling: touch;一切运行良好,除了我们仍在整个页面主体上体验苹果弹性滚动效果。

这涉及到当滚动结束或主体被推动时整个页面从视口的顶部/底部移开,并且真正暴露了这是一个网络应用程序的事实。我已关注各种指导方针关于如何防止这种情况,当它们确实起作用时,它们会阻止内部可滚动元素一起工作。

这是一个小提琴展示我到目前为止所使用的。

有没有人找到一种解决方案,禁用身体弹性滚动,但让内部可滚动工作?


我已经采用了很好的解决方案有条件地阻止移动 Safari 中的滚动/触摸移动事件使用道场:

var initialY = null;
dojo.connect(document, 'ontouchstart', function(e) {
    initialY = e.pageY;
});
dojo.connect(document, 'ontouchend', function(e) {
    initialY = null;
});
dojo.connect(document, 'ontouchcancel', function(e) {
    initialY = null;
});
dojo.connect(document, 'ontouchmove', function(e) {
    if(initialY !== null) {
        if(!dojo.query(e.target).closest('#content')[0]) {
            // The element to be scrolled is not the content node
            e.preventDefault();
            return;
        }

        var direction   = e.pageY - initialY;
        var contentNode = dojo.byId('content');

        if(direction > 0 && contentNode.scrollTop <= 0) {
            // The user is scrolling up, and the element is already scrolled to top
            e.preventDefault();
        } else if(direction < 0 && contentNode.scrollTop >= contentNode.scrollHeight - contentNode.clientHeight) {
            // The user is scrolling down, and the element is already scrolled to bottom
            e.preventDefault();
        }
    }
});

在本例中,要滚动的元素是#content。

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

禁用iOS弹性体滚动并保持本机滚动工作[重复] 的相关文章

随机推荐

  • 如何允许来自所有域的 CrossOrigin?

    有没有办法让这个端点允许来自任何地方的请求 我已经尝试过 但没有一个有效 CrossOrigin 起源 CrossOrigin origins http CrossOrigin origins http localhost 3001 Get
  • 我可以在不使用外部服务的情况下在 Chrome 应用程序中获取我的 IP 地址吗?

    我正在构建一个镀铬应用程序并创建了一个UDP套接字通过镀铬插座 API 有没有办法找回自己的IP地址不使用外部服务 我所说的 自己的 IP 地址 是什么意思 两者client and server位于同一网络上 这镀铬应用程序需要回答一个U
  • PHP 多输入搜索

    我目前正在研究一些 PHP 并且有 3 个文本输入 在 MySQL 数据库中搜索这些值 并应返回与输入条件相对应的任意数量的结果 这是搜索表单
  • 如何直接从 Java 调用 Clojure 函数 [重复]

    这个问题在这里已经有答案了 我有 Clojure 函数generate id 源代码 ns url62 core defn generate id int to base62 java math BigInteger clojure str
  • 在Android中的表格布局中设置列的相等宽度[重复]

    这个问题在这里已经有答案了 可能的重复 XML 表布局 两个等宽的行充满了等宽的按钮 我在用TableLayout以 4 列显示数据列表 问题描述 我无法将我的所有 4 列设置为相等宽度TableLayout 我正在放置我正在使用的布局代码
  • 剪切图像而不裁剪

    我正在尝试使用 python 对图像进行剪切变换 我正在使用 skimage scikit image opencv 或类似的工具也可以完成我认为的工作 问题是 每当我尝试使用仿射变换和扭曲 skimage 进行剪切时 图像都会出现 裁剪
  • 使用 Laravel 4 自动生成模型类(也称为使用 L4 的现有数据库)

    我已经在 MySQL Workbench 中设计了数据库 并设置了所有外键等 我想在 Laravel 4 中使用这个数据库模式 但是从文档中看 没有任何关于使用现有数据库表集的能力 根据我的理解 其他框架 例如带有 烘焙 功能的 Cake
  • 页面方法未定义

    我正在设置 PageMethods 以使用 javascript 访问服务器端代码 当我使用 firebug 进行调试时 收到错误 PageMethods 未定义 服务器端代码也没有被触发 我已将脚本管理器 EnablePageMethod
  • 我如何通过优先ID列表对mysql结果进行排序?

    我有一个大型产品数据库 每个星期日 我的脚本都会激活 50 个新产品 问题是 根据我脚本中的一些规则 我发现一些我应该优先激活的产品 对于您的示例 假设它应该始终优先激活名称为 hello kitty 和 meshuggah 的产品 然后再
  • 插件 videoPlayer PhoneGap 不起作用

    我使用 cordova 2 9 0 并且安装了 videoPlayer 插件 https github com macdonst VideoPlayer 我在 config xml 中添加了插件 并在声明 cordova js 后在 ind
  • com.ibm.mq.MQException:MQJE001:完成代码“2”,原因“2035”

    我正在构建一个应该能够连接到 IBM WebSphere MQ 队列管理器的 Java 应用程序 但我不明白为什么我不断收到此错误 我已经使用我的用户 ID 拥有管理权限setmqaut通过 MQ 资源管理器 我还定义了MCAUSER在我的
  • 在for循环中读取csv文件并分配数据框名称[重复]

    这个问题在这里已经有答案了 可能的重复 将多个 CSV 文件读取到单独的数据框中 我需要将多个 csv 文件从一个文件夹读入数据帧 csv 文件名的格式为fxpair yyyy mm csv 例如 AUDJPY 2009 05 csv 我想
  • 单例对于微博网站来说是一个好的设计模式吗?

    我过去在项目中没有使用过任何 OO 因为我让它更简单 实际上使用古老的 mysql query 调用和我自己的过滤 所以我想开始一个新项目 学习在我的 OO 中使用设计模式 我想建立一个微博网站来娱乐一下 然后发现单例设计模式类看起来很完整
  • 未显示 Azure Web App/虚拟目录上的节点应用程序

    我已经找到一篇文章 但没有与当前 Azure Web App 配置选项匹配的文章 我想新版本中有些东西发生了变化 我正在尝试通过 Azure Web App 和 Linux 应用服务计划托管节点应用程序 我的问题是 我的节点应用程序的内容没
  • Google Maps API,所有标记打开相同的信息窗口

    我有一个页面 可以检索一堆位置和一些有关其关联标记的数据 并将它们放在 Google 地图上 单击时 每个按钮都会弹出自己的小消息 但是 单击其中任何一个都会在最近添加的标记处弹出最近添加的消息 是什么赋予了 我没有正确编写点击事件脚本吗
  • 可可 NSView 模糊背景

    我知道可以在 Cocoa 中创建透明窗口 尽管可以模糊其后面的内容吗 我知道有过类似的问题 但它们处理的内容更加模糊实际 NSView 中的内容 而不是其背后的内容 这是否可能 如果可以 我需要研究什么方法 Possible Impossi
  • Math ML 的 .NET 组件,可以编辑公式,将其呈现为图像

    目前最受欢迎的组件 MathML Net 无法下载 我想知道是否有其他 Net 组件可以帮助解决此问题 可以编辑公式 将其渲染为图像 I found g分子 就在不久前 它应该呈现 MathML 并且它是用 C 为 Winforms 编写的
  • 使用 R 3.6.0 编译 stan 文件时出错。和赢10

    Error in compileCode f code language language verbose verbose Compilation ERROR function s method s not created Error in
  • 将组件放置在玻璃板上

    我有一个 JLabel 的子类 它构成了我的 GUI 的一个组件 我已经实现了将组件从一个容器拖放到另一个容器的功能 但没有任何视觉效果 我想让这个 JLabel 在将项目从一个容器拖动到另一个容器时跟随光标 我想我可以创建一个玻璃板并在上
  • 禁用iOS弹性体滚动并保持本机滚动工作[重复]

    这个问题在这里已经有答案了 我目前正在开发一个针对触摸设备 主要是 iOS 进行优化的单页 Web 应用程序 我已经通过以下方式实现了新的 iOS 原生滚动 webkit overflow scrolling touch 一切运行良好 除了