【问题标题】:iOS Safari not triggering 'rotate' eventiOS Safari 未触发“旋转”事件
【发布时间】:2014-05-30 11:40:31
【问题描述】:

我一直在尝试各种方法来在旋转设备时触发事件。它适用于所有安卓浏览器。它适用于 iOS 上的所有浏览器,Safari 除外。我已经在 iOS7 上尝试了 1 部 iPhone 和 2 部 iPad,但就是无法触发此事件。

我试过了:

jquery:

$( window ).resize(function() {

$(window).bind("resize", function(){


js:

document.addEventListener("orientationchange", updateOrientation);

window.onresize = function(event) {

没有运气,没有任何运气。它们都适用于所有浏览器,但在 iOS Safari 中失败。最奇怪的是,有时它会在 20 次旋转中发射一次或两次。其他时候,根本没有事件。到底是怎么回事?有人对此有经验吗?是我做错了什么,还是一个奇怪的错误?

【问题讨论】:

    标签: javascript jquery ios safari


    【解决方案1】:

    男孩,orientChange 类型的支持似乎在移动浏览器中非常狡猾。因此,为了避免担心,我只是遵循了这个完全不依赖该事件的简单保证方法:

    function findOrientation()
    {
        if(window.innerHeight > window.innerWidth){
            return 'portrait';
        } else {
            return 'landscape';
        }
    }
    
    function checkOrientation() {   //to be run every X seconds by setInterval below
        var currentPortraitOrLandscape = findOrientation();
        if(currentLandscapeOrPortrait != window.landscapeOrPortrait) {
             doMyOrientationChangeCode();
             }
        }
    
    window.portraitOrLandscape = findOrientation();
    
    setInterval(checkOrientation, 800);  //check around once a second if they have reoriented
    

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 2012-08-06
      • 2021-04-28
      相关资源
      最近更新 更多