繁体   English   中英

使用JavaScript / Hammer.js检测Android pinch以缩放innerWidth

[英]Detect Android pinch to zoom innerWidth with JavaScript/Hammer.js

我想知道在缩放时缩放的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/

有人有答案吗?

您想要检测的不是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/

在捏之前捏之后

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM