【发布时间】:2011-05-28 23:41:37
【问题描述】:
如何使用 JavaScript 设置移动 safari 的缩放级别?
【问题讨论】:
标签: ipad ios safari mobile-safari zooming
如何使用 JavaScript 设置移动 safari 的缩放级别?
【问题讨论】:
标签: ipad ios safari mobile-safari zooming
[已更新] 您似乎想在移动 Safari 中捕获双击。您可以通过处理touchend 事件来做到这一点,或者使用可用的框架,例如this site 中提供的框架。
看看修改后的演示: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
);
});
【讨论】:
据我所知,您可以通过更改 body 元素的样式“-webkit-text-size-adjust”来更改文本大小的缩放系数。
查看此链接了解更多信息:
【讨论】:
我尝试使用 JavaScript 操作元标记中的最小/最大比例和宽度,但无济于事。与其尝试使用代码设置缩放级别(我认为这是不可能的),不如在我相对较大的图像上创建小的不可见框。这将允许用户通过本机双击图像的有趣部分来放大(和缩小)。
【讨论】:
document.createEvent("TouchEvent");、.initTouchEvent(…)、document.createTouch(…) 和所有爵士乐来模拟双击事件,但是没有成功。 JavaScript 引擎可以识别这些事件,但 Safari 的视口控制器无法识别这些事件。
试试这个:
<meta name="viewport" content="width=device-width; initial-scale=1.0; user-scalable:no;">
【讨论】: