在移动版Safari中,是否可能通过Javascript更改页面缩放?

3
我有一个使用jquerymobile的网站。它会加载一个初始网页,然后当点击其他页面时,这些页面会在一个“覆盖层”中加载并滑动到顶部。
就像这样: http://jquerymobile.com/demos/1.0a4/ 但是我的网站启用了捏合缩放功能。
我希望每个页面上的缩放状态都是独立的。因此,如果用户从第一页开始,在打开“覆盖层”、缩放后再关闭“覆盖层”时,我希望第一页恢复到原始缩放级别。
这种情况是否可行?
2个回答

1
实际上,我刚刚自己解决了这个具体的问题,所以我希望这个答案能帮助其他人。我遇到的具体情况是,我有一个网站(更像是一个 Web 应用程序),它没有使用响应式设计构建,但仍旧打算适用于移动设备。其中一个界面特性是包含一个表单的 jQuery 对话框窗口。当用户在移动设备上(如 Droid 或 iPhone)填写该表单时,十有八九会“捏合缩放”以填写表单。你只需要在某些事件上触发此功能,例如在我的情况下,是提交按钮的点击。
function changeZoomLevel() {
        var sViewport = '<meta name="viewport" content="width=960">';
        var jViewport = $('meta[name="viewport"]');
        if (jViewport.length > 0) {
            jViewport.replaceWith(sViewport);
        } else {
            $('head').append(sViewport);
        }
}

当然,您可以将宽度属性更改为您网站框架的宽度。但这样就可以解决问题了。

0

没有办法控制浏览器缩放。您应该使用JavaScript在浏览器中缩放(或缩放)对象。最好通过将user-scalable设置为no来关闭捏合。


2
将用户缩放设置为“否”,关闭捏合功能并不是一个好主意。如果您的网站中有小字体或是视力较差的用户,他们将无法阅读您的网站。 - Chad DeShon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接