【问题标题】:iOS Safari - disable scroll / bounce but retain zoomiOS Safari - 禁用滚动/反弹但保留缩放
【发布时间】:2016-10-03 08:07:18
【问题描述】:

我正在为 iOS Safari 创建一个网络应用程序,但遇到了一个小障碍。

我的网络应用程序只占用 1024x768 的屏幕空间,因此不需要滚动,但它确实需要能够缩放(它是一个 PDF 注释器)。

我使用了一个名为 iNoBounce (https://github.com/lazd/iNoBounce/) 的插件,它通过在 touchmove/touchstart 事件上触发 evt.preventDefault() 成功地从页面中移除滚动。这很棒。

不过,它的作用是删除缩放事件和滚动事件。有没有办法移除滚动/弹性弹跳但在 iOS safari 上保留缩放?

非常感谢

【问题讨论】:

    标签: javascript jquery ios css safari


    【解决方案1】:

    我设法通过监听触摸事件对象上的一些值来解决这个问题,特别是changedTouches.lengthscale

    首先我在文档顶部为 zoomLevel 设置了一个全局变量var zoomLevel = 1

    接下来,我将 iNoBounce 中的 evt.preventDefault() 替换为:

    if(evt.changedTouches.length === 1 && zoomLevel <= 1){
        evt.preventDefault();
    }
    if(evt.changedTouches.length > 1){
        zoomLevel = evt.scale;
    }
    

    这会查看正在使用的手指数量,如果页面比例不是 100%,则采取相应措施。

    【讨论】:

      猜你喜欢
      • 2014-07-14
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2019-08-11
      • 2014-07-30
      • 1970-01-01
      相关资源
      最近更新 更多