滚动时的 JavaScript 调整大小事件 - 移动

IT技术 javascript events mobile resize
2021-03-12 22:30:18

我正在尝试为移动设备制作网站。我在窗口上有“调整大小”事件,它应该在移动设备转动时重新排列元素(纵向 <-> 横向)。在 iPhone 和三星 Galaxy SII 上,当我向下滚动页面时会触发该事件,这并不好。

我怎样才能解决这个问题?

2个回答

缓存视口的宽度,如果宽度仍然相同,则在调整大小时返回 false。

一个小的 jQuery 片段:

    var cachedWidth = $(window).width();
    $(window).resize(function(){
        var newWidth = $(window).width();
        if(newWidth !== cachedWidth){
            //DO RESIZE HERE
            cachedWidth = newWidth;
        }
    });
这是我一直在寻找的答案。太赞了。OP 这应该是公认的答案。这是解决问题的正确方法。
2021-04-25 22:30:18
这看起来像 jQuery 并且问题中没有任何内容......但是谢谢你,sidonaldson,你的答案 - 一点也不差。
2021-04-26 22:30:18
@LukeFlego 这是修复此错误的最佳方法,但不是理想的代码。有时最简单的修复是最好的:)
2021-04-29 22:30:18
遇到了同样的问题,这解决了它。这是正确答案。
2021-05-06 22:30:18
@LGT 正确。我会更新答案以说明这一点
2021-05-11 22:30:18

请改用onOrientationChange事件和window.orientation属性。

另请参阅此答案

这里链接到一个测试页面