如何使用JavaScript在移动Safari上设置缩放级别?
如何使用JavaScript在移动Safari上设置缩放级别?
[更新] 似乎你想在移动版Safari上捕获双击事件。您可以通过处理touchend
事件来实现,或者使用可用的框架,例如此网站中提供的框架。
请查看修订后的演示:http://jsbin.com/atayo4/20
<p id="tap">double tap to zoom</p>
<input id="zoomWidth" type="text" value="400" />
<p id="feedback"></p>
$(document).ready(function(){
$('#tap').doubletap(
// double tap handler
function(e) {
$('#feedback').addClass('red').html('double tap! Zoom width: ' + $('#zoomWidth').val());
var zoomWidth = $('#zoomWidth').val();
// zoom with the new width
$('meta[name="viewport"]').attr('content', 'width=' + zoomWidth + ', user-scalable:no');
$('#zoomWidth').val(parseInt(zoomWidth, 10) - 25);
},
// single tap handler
function(e) {
$('#feedback').removeClass('red').html('single tap! Zoom width: ' + $('#zoomWidth').val());
},
// double tap delay, default 500
400
);
});
我尝试使用JavaScript操纵meta标签中的最小/最大比例尺和宽度,但没有成功。我认为无法通过代码设置缩放级别,因此我打算在相对较大的图像上创建小的不可见框。这将允许用户通过原生双击图像上有趣的部分来放大(或缩小)。
document.createEvent("TouchEvent");
, .initTouchEvent(…)
, document.createTouch(…)
等方法来模拟双击事件,但是没有成功。虽然 JavaScript 引擎能够识别这些事件,但是 Safari 的视口控制器却不能。 - Lenar Hoyt