【发布时间】:2012-01-17 16:45:40
【问题描述】:
我正在开发我的网站的移动版本。我尽可能多地使用媒体查询和 CSS,但我也使用了一些 javascript,例如,在较小的设备上将我的导航变成折叠/展开列表以节省空间。
为了处理所有这些,我尝试使用 window.resize 事件。这允许在调整大小时在桌面浏览器上发生魔法,但是当我不期待它们时,我会在 iPad/iPhone 上收到调整大小事件。
在桌面浏览器上,如果我实际调整窗口大小,我只会收到调整大小事件。在移动浏览器上,当我改变方向(预期)时,我会收到 resize 事件,但当我切换到展开/折叠某些东西时,我也会收到它。
这是一个简单的例子:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<title>Resize test</title>
<style>
.box {height: 10000px; background: green; display: none;}
</style>
<script>
$(function(){
$(".opener").click(function(){
$(".box").slideToggle();
});
$(window).resize(function(){
alert("resized");
});
});
</script>
</head>
<body>
<a href="#" class="opener">Open/close me</a>
<div class="box"></div>
</body>
</html>
当您在桌面浏览器上单击链接时,没有警报。单击 iPhone/iPad 上的链接,您会收到警报。有什么关系?
【问题讨论】:
-
嗨@rdoyle720。为什么不将@ 3stripe 答案标记为有效答案?
-
@rdoyle720 我也想要 :)
-
也留在这里,因为它解决了我的问题:boagworld.com/dev/ios-safari-resizing-issues
标签: javascript jquery iphone css mobile