【问题标题】:Hammer.js: Android website pinch events not firingHammer.js:Android 网站捏事件未触发
【发布时间】:2013-07-30 10:19:07
【问题描述】:

我想使用hammer.js(或其他任何东西也可以)在网页中的图像上捕获捏合事件。我有两个实现,它们都没有按预期工作。我正在使用 Android 4.1 和 chrome 进行测试,但希望它是一个跨浏览器解决方案(哈!如果存在的话......)

第一个根本不会触发捏合事件。 http://jsfiddle.net/7EV56/9/

$elem.hammer()
    .on("pinchin", function (evt)
    {
        //do stuff
    }).on("pinchout", function (evt)
    {
        //do stuff
    });

第二个完美地触发了捏事件,但是我不能再平移/滚动了。 http://jsfiddle.net/7EV56/8/

$elem.hammer({prevent_default:true})
    .on("pinchin", function (evt)
    {
        //do stuff
    }).on("pinchout", function (evt)
    {
        //do stuff
    }); 

【问题讨论】:

    标签: javascript android jquery multi-touch hammer.js


    【解决方案1】:

    出于绝望,我尝试了初始化参数中的所有可用选项,你瞧:

    transform_always_block: true
    

    不确定这样做有什么效果。希望它不会破坏其他几个功能,但至少这两个现在已修复。

    如果有人仍然可以阐明这实际上做了什么以及为什么要修复它,我们将不胜感激。

    干杯

    【讨论】:

    • 谢谢 - 这个小费救了我 :-)
    • 在 transform.js 的源代码 (github.com/EightMedia/hammer.js/blob/master/src/gestures/…) 中(即这个手势在hammer.js 中的源代码),对此属性的注释说:“当屏幕上出现两次触摸时阻止默认浏览器行为,但是当您使用转换手势时,它会使元素成为阻塞元素,将其设置为 true 是一个好习惯”-希望为您清除它!
    • @Coder 谢谢,但我在文档中看到了该评论,并不真正知道它在说什么。可能是由于我对这些东西普遍缺乏了解。我的意思是,什么是“默认浏览器行为”,什么是“阻塞元素”
    • 猜猜这个选项会阻止浏览器处理这些事件以及您的处理程序,即您的元素“阻止”事件的任何传播。我同意这并不明显。您的解决方案是我需要做的,找到您的答案解决了我的问题! :)
    猜你喜欢
    • 1970-01-01
    • 2015-09-28
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多