【发布时间】:2025-12-13 07:20:03
【问题描述】:
当meta name="viewport" 设置为user-scalable=yes 时,如何检测缩放的缩放比例(或缩放距离)?
我已经在 Android 上进行了测试,但如果 meta name="viewport" 设置为 user-scalable=yes,则无法检测到缩放缩放。如果meta name="viewport" 设置为user-scalable=no,则可以检测到缩放缩放,但我无法放大文档。
这是我对 jsFiddle 的测试:
锤子.js: http://jsfiddle.net/pE42S/
var pziW = "test";
var viewport_width = $(window).innerWidth();
var zoom = 0;
var hammer = new Hammer(document.getElementById("touchme"));
hammer.ontransformstart = function(ev) {
console.log("ontransformstart");
console.log(ev);
//pziW = $(window).innerWidth() / 2 * ev.scale;
zoom = ev.scale;
var msg = "ontransformstart " + pziW + " scale " + zoom;
log(msg);
};
hammer.ontransform = function(ev) {
console.log("ontransform");
console.log(ev);
zoom -= ev.scale;
viewport_width+=viewport_width*zoom;
zoom = ev.scale;
pziW=viewport_width;
//pziW = $(window).innerWidth() / 2 * ev.scale;
jqUpdateSize();
var msg = "ontransform " + pziW + " scale " + zoom;
log(msg);
};
hammer.ontransformend = function(ev) {
console.log("ontransformend");
console.log(ev);
var msg = "ontransformend " + pziW + " scale " + zoom;
log(msg);
};
触摸滑动: http://jsfiddle.net/pE42S/1/
$(function() {
$("#touchme").swipe( {
pinchStatus:function(event, phase, direction, distance , duration , fingerCount, pinchZoom) {
console.log("pinchStatus");
console.log(event);
pziW=viewport_width - distance;
$("#log").text(pziW);
jqUpdateSize();
},
fingers:2,
pinchThreshold:0
});
});
有人有答案吗?
【问题讨论】:
-
你看过 jQuery 插件 Touchy 吗? touchyjs.org
-
图像在 jsfiddle 中不起作用。我现在无法检查它是如何工作的。你的意思是原生缩放不起作用或“捏”缩放?
-
我会参考这个 * 问题的答案:*.com/questions/11183174/…。
标签: javascript android jquery hammer.js jquery-events