使用jQuery mobile有什么好的方法可以放大和缩小页面功能吗。我瞪大眼睛发现
window.parent.document.body.style.zoom = 1.5;
有没有更好的方法可以在jQuery mobile中实现放大和缩小功能?
这里有一个示例解决方法,DEMOhttp://jsfiddle.net/yeyene/aGuLE/
$(document).ready(function () {
$('#zoomIn').on('click', function () {
zoomIn(1.2);
});
$('#zoomOut').on('click', function () {
zoomOut();
});
});
function zoomIn(zoomLev) {
if (zoomLev > 1) {
if (typeof (document.body.style.zoom) != "undefined") {
$(document.body).css('zoom', zoomLev);
}else {
// Mozilla doesn't support zoom, use -moz-transform to scale and compensate for lost width
$('#divWrap').css({
"-moz-transform": 'scale(" + zoomLev + ")',
width: $(window).width() / zoomLev
});
}
}
}
function zoomOut() {
$(document.body).css({
zoom : '',
position : '',
left: "",
top: "",
"-moz-transform" : "",
width : ''
});
}
如果您使用Jquery mobile,您需要检查文件的<head>
中的元数据
<meta name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
如果在视口元数据中定义了content="user-scalable=no
,这将阻止您缩放
试试这个。您一定已经在某个地方有了元视口。
var viewportmeta=$("meta[name='viewport']"); //find a viewport meta
viewportmeta.attr("content_original", viewportmeta.attr("content")); //store the initial value
viewportmeta.attr("content", "user-scalable=yes, width=device-width minimum-scale=1, maximum-scale=1"); //make current viewport full zoom out
//do your things...
viewportmeta.attr("content", viewportmeta.attr("content_original")); //then return back to old viewport conditions