我正在尝试为移动设备制作网站。我在窗口上有“调整大小”事件,它应该在移动设备转动时重新排列元素(纵向 <-> 横向)。在 iPhone 和三星 Galaxy SII 上,当我向下滚动页面时会触发该事件,这并不好。
我怎样才能解决这个问题?
缓存视口的宽度,如果宽度仍然相同,则在调整大小时返回 false。
一个小的 jQuery 片段:
var cachedWidth = $(window).width(); $(window).resize(function(){ var newWidth = $(window).width(); if(newWidth !== cachedWidth){ //DO RESIZE HERE cachedWidth = newWidth; } });
请改用onOrientationChange事件和window.orientation属性。
onOrientationChange
window.orientation
另请参阅此答案。
这里链接到一个测试页面。