$(window).resize()会触发方向更改吗?

Eva*_*nss 37 javascript jquery screen-orientation

我在调整浏览器窗口大小时使用它来运行一些代码: $(window).resize(callback)

我还需要在手机和平​​板电脑中更改方向时运行此代码.以上火灾会对此事件有所影响吗?

Jac*_*ack 72

有些设备/浏览器有,有些没有.您需要确定支持的浏览器和设备.

如果你想要在安全的一面,你应该使用resize事件并获取/检查其中的尺寸; 如果您知道所需的设备,则需要进行简单的方向更改:

简易解决方案

// Listen for orientation changes      
window.addEventListener("orientationchange", function() {
    // Announce the new orientation number
    alert(window.orientation);
}, false);
Run Code Online (Sandbox Code Playgroud)

更安全/更受支持

// Listen for resize changes
window.addEventListener("resize", function() {
    // Get screen size (inner/outerWidth, inner/outerHeight)

}, false);
Run Code Online (Sandbox Code Playgroud)

大卫沃尔什写了一篇关于调整大小和方向改变事件的好文章.有关方向更改和大小的更多信息,请访问:http: //davidwalsh.name/orientation-change

  • 如果我正确理解了问题,则需要两种解决方案,因为如果调整窗口大小或设备方向发生变化,OP 希望运行相同的代码。除非你说 vanilla JS resize 选项比 jQuery 更受支持 (2认同)
  • 不仅仅是有些人这样做,有些人不这样做 - 有些人*有时*。即使在带有 ios11 的 iPhone 上,我也看到调整大小甚至在我旋转时并不总是触发。但随后我会滚动并更新。结合两者使它总是即时的。只需确保仅处理一项更改(仅在您上次运行计算时确实发生更改时才运行您的代码)而不是两项。 (2认同)