我正在使用我的網站的移動版本。我儘可能多地使用媒體查詢和CSS,但我也使用了一些JavaScript,例如,將我的導航轉變爲較小設備上的摺疊/展開列表以節省空間。iphone/ipad觸發意外調整大小事件
爲了處理所有這些,我試圖使用window.resize事件。這可以讓桌面瀏覽器在調整大小時發生魔法,但是當我不期待它們時,我正在iPad/iPhone上獲取調整大小的事件。
在桌面瀏覽器上,如果實際調整窗口大小,我只會得到resize事件。在移動瀏覽器中,當我改變方向(預期)時,我會得到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上的鏈接,您會收到警報。這是怎麼回事?
Hi @ rdoyle720。爲什麼不標記@ 3stripe答案的有效答案? – 2016-01-15 12:47:46
@ rdoyle720我也想這樣:) – 3stripe 2016-11-15 09:42:24