9

我正在捕捉这样的orientationchange事件:

            $(window).bind( 'orientationchange', function(e){

            });

之后如何获得新的屏幕宽度和高度(以像素为单位)orientationchage

我已经尝试过screen.width,但这并没有改变,它仍然是初始宽度,即使在方向改变之后也是如此。

4

4 回答 4

10
$(window).bind( 'orientationchange', function(e){
    var ori = window.orientation,
        width = (ori==90 || ori==-90) ? screen.height : screen.width;
});
于 2012-11-02T17:23:40.007 回答
4

你也可以使用screen.availWidth. 它会随着方向而改变。

于 2015-05-18T10:01:30.853 回答
2

使用$(window).resize,它在orientationchange之后运行

$(window).resize(function(){
        //your logic
});
于 2017-09-19T16:39:20.007 回答
1

如果您使用的是元标记视口,您还可以更新该标记(使用 jquery 示例:)

        function adapt_to_orientation() {
        var ori = window.orientation;
        var screenwidth = (ori==90 || ori==-90) ? screen.height : screen.width;
        var screenheight = (ori==90 || ori==-90) ? screen.width : screen.height;
                  // resize meta viewport
                  $('meta[name=viewport]').attr('content', 'initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width='+screenwidth + ',height=' + screenheight);
                }   
        adapt_to_orientation();
        $(window).bind( 'orientationchange', adapt_to_orientation);
于 2013-07-02T16:38:02.433 回答