【问题标题】:IOS mobile disable zoomIOS移动禁用缩放
【发布时间】:2020-09-09 03:00:24
【问题描述】:
【问题讨论】:
标签:
ios
zooming
pinchzoom
【解决方案1】:
我是这样做的(touchmovetime 是一个全局变量,用于存储最后一次触摸发生时的时间戳):
var touchmovetime;
// add events to inputs and disable pinchtozoom
var disablePinchToZoom = function (event) {
if (typeof event.scale !== "undefined" && event.scale !== 1) { event.preventDefault(); }
touchmovetime=event.timeStamp;
};
var myDisabledTouchmove = function (event) {
event.preventDefault();
touchmovetime=event.timeStamp;
};
var myDisabledEvent = function (event) {
event.preventDefault();
if ((event.timeStamp - touchmovetime)>200) {
event.changedTouches[0].target.click();
event.changedTouches[0].target.focus();
} // always issues single clicks but not for touchmove events
};
var ids= ["element1", "element2"];
var c;
for (var i in ids) {
c = document.getElementById(ids[i]);
c.addEventListener("touchmove", disablePinchToZoom, false);
c.addEventListener("touchmove", myDisabledTouchmove, false);
c.addEventListener("touchend", myDisabledEvent, false);
if (isAndroid) {
c.addEventListener("touchstart", function(e) { touchEvent.preventDefault(); }, false);
}
}