【问题标题】:Detect Android pinch to zoom innerWidth with JavaScript/Hammer.js使用 JavaScript/Hammer.js 检测 Android 捏以缩放 innerWidth
【发布时间】:2013-02-02 14:20:42
【问题描述】:

我想知道缩放时要缩放的innerWith/viewport宽度。

如果它低于 500 像素,我想更改图像:

$("img#ad").attr("src", "http://img0.www.suckmypic.net/img/1/L/mmy4jT8s/jsFiddle3.png");

我尝试过这样的事情:

var hammer = new Hammer(document.getElementById("log"));

hammer.ontransformstart = function(ev) {
    var pziW = "test"; // Declare here the innerWidth of the pinch to zoom
    if (pziW < 500) {
        $("img#ad").attr("src", "http://img0.www.suckmypic.net/img/1/L/mmy4jT8s/jsFiddle3.png");
    }
};
hammer.ontransform = function(ev) {
    var pziW = "test"; // Declare here the innerWidth of the pinch to zoom
    if (pziW < 500) {
        $("img#ad").attr("src", "http://img0.www.suckmypic.net/img/1/L/mmy4jT8s/jsFiddle3.png");
    }
};
hammer.ontransformend = function(ev) {
    var pziW = "test"; // Declare here the innerWidth of the pinch to zoom
    if (pziW < 500) {
        $("img#ad").attr("src", "http://img0.www.suckmypic.net/img/1/L/mmy4jT8s/jsFiddle3.png");
    }
};

但我不知道如何声明捏的innerWidth 来缩放。

这里是 jsFiddle:

http://jsfiddle.net/nLvu6/

有人有答案吗?

【问题讨论】:

    标签: javascript android jquery hammer.js jquery-events


    【解决方案1】:

    您想要检测的不是 innerWidth。

    看看传递给锤子函数的 ev 变量:

    distance: 0
    distanceX: 0
    distanceY: 0
    originalEvent: TouchEvent
    position: Object
    rotation: 124.85234015769826
    scale: 2.0725083746457824
    touches: Array[0]
    type: "transformend"
    __proto__: Object
    

    scale: 2.0725083746457824 是我们想要的。如果比例高于或低于某个阈值,则执行图像替换功能。

    我已经分叉了你的 JSFiddle。见这里:http://jsfiddle.net/BFBrU/14/

    【讨论】:

    • 我尝试使用以下方法计算 innerWidth: pziW = $(window).innerWidth() / 2 * ev.scale;但它一直返回 0,我的计算有问题吗?更新 JSFiddle:jsfiddle.net/nLvu6/20
    • 另外在另一个论坛上,有人建议这样计算:在页面开始:将视口宽度变量设置为初始宽度 ontransformstart:缩放变量 = ev.scale(它将为 1.0) ontransform:计算缩放增量(zoom variable -= ev.scale) viewport-width += viewport width * zoom delta zoom variable = ev.scale 我怎样才能把它放在计算中?我试过这个:jsfiddle.net/nLvu6/22 和“hammer.bind”:jsfiddle.net/nLvu6/21
    猜你喜欢
    • 2012-12-25
    • 2013-08-03
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2012-01-29
    相关资源
    最近更新 更多