3

我正在尝试检测移动设备、iphone 和 ipad 中的方向变化。

我正在使用以下代码:

 $(window).bind("orientationchange", function (event) {
    alert(event.orientation);

    position = $.event.special.orientationchange.orientation();

    event.preventDefault();
});

这里警报的值,即 event.orientation 显示为“未定义”,正如我在一些帖子中读到的那样,它确实支持检测方向。同样在 jquery 文档中,它被写入更好地使用“event.orientation”而不是“window.orientation”,但这些都没有返回所需的结果,两者都返回“未定义”。

所以我使用了“$.event.special.orientationchange.orientation();” 来检测方向。

但我想将 jquery 文档中定义的功能用作 event.orientation。如链接

同样在我的代码中,“$.mobile.orientationChangeEnabled”设置为 true,如上面的链接中所示。

请为此建议我任何可能的解决方案。

任何帮助,将不胜感激。

提前致谢。

4

5 回答 5

2

老问题,但以防万一其他人遇到它,您必须使用 window.orientation,并以度数表示:

portrait: 0
portrait (upside down): 180 
landscape: (counterclockwise): 90
landscape: (clockwise): -90
于 2015-04-27T16:15:50.840 回答
1

我有同样的问题。以防万一有人遇到这个问题。试试 window.screen.orientation.type

jQuery( window ).on( "orientationchange", function( event ) {
    if(window.screen.orientation.type == 'landscape-primary')
    {

    }
    if(window.screen.orientation.type == 'portrait-primary')
    {

    }
});
于 2018-04-28T09:57:28.037 回答
1

event.orientation 并不总是设置。我在 IOS Safari 中遇到了这个“未定义”的问题。相反,请尝试使用 window.orientation:

//trigger a button click when orientation is changed to landscape mode
$(window).on('orientationchange', function(event) {
    if (window.orientation == 90 || window.orientation == -90) {
        $('.close-button').click();
    }
});

window.orientation 可以是 0 或 180(纵向模式),或 90 或 -90(横向模式)

于 2017-01-31T23:33:20.957 回答
0

尝试这个:

$(window).bind('orientationchange',function(){
    if(event.orientation == 'portrait'){
        alert('portrait');
    }
    else if(event.orientation == 'landscape') {
        alert('landscape');
    }
});
于 2012-12-03T14:01:11.060 回答
0
$(window).on("orientationchange", function (event) {
于 2016-04-13T15:27:12.810 回答