【问题标题】:Preventing default iOS webpage drag with javascript and hammerJS使用javascript和hammerJS防止默认的iOS网页拖动
【发布时间】:2013-04-03 15:13:55
【问题描述】:

我正在创建一个简单的网络应用程序,它使用新版本的hammerJS 进行捏缩放。当捏开始时,我遇到了默认的 iOS 页面拖动问题。这个接缝覆盖了我试图捕捉的捏事件。非常感谢在使用hammerJS 时阻止这种情况的任何帮助。

PS:我尝试使用 event.preventDefault() 无济于事。

【问题讨论】:

    标签: javascript jquery ios hammer.js


    【解决方案1】:

    您需要拨打preventDefault 与您习惯的方式略有不同。像这样:

     $('#your_element').on('pinch', function(event) {
          event.gesture.preventDefault();
     });
    

    另一个例子见this hammer.js example

    【讨论】:

      【解决方案2】:

      把它放在你的标题中:

      <meta name="viewport" content="width=device-width,user-scalable=no">
      

      如果允许用户缩放页面,基本上是用户可缩放的属性控制。因此,一旦禁用它,您就可以使用hammerJs 控制缩放。

      更多信息在这里https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag#Viewport_basics

      【讨论】:

      • 看来,通过捏合创建的拖动仍然被 iOS 上的 safari 捕获。这会导致浏览器中的页面向下拖动(而不是滚动)。网络应用没有任何滚动条。
      • 奇怪...preventDefault() 应该禁用捏缩放
      【解决方案3】:

      您在什么情况下调用 preventDefault?我通常将@Bertrand 的答案与类似的东西结合起来

      $(body).on('touchmove', function(e){
          e.preventDefault();
      });
      

      【讨论】:

        猜你喜欢
        • 2011-07-17
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多