返回介绍

mobile设备的横竖屏切换检测

发布于 2024-06-02 22:07:04 字数 2245 浏览 0 评论 0 收藏 0

orientationchange Event

我们可以选择在window对象上监听orientationchange属性。比如:

// Listen for orientation changes
window.addEventListener("orientationchange", function() {
    // Announce the new orientation number
    alert(window.orientation);
    alert(window.outerWidth);
    alert(innerWidth);
}, false);

window.orientation的取值:

  • 0: portrait
  • 90: landscape rotated to the left
  • -90: landscape rotated to the right
  • 180: portrait, ipad下才能取到

resize Event

设备旋转的时候,window的resize事件也是被触发的。判断的方法是:

  • outerWidth, outerHeight: 检测是point
  • innerWidth, innerHeight: 检测的是pixel

window.matchMedia

这是一段JS代码,可以查询对应的css媒体查询语句是否匹配。

// Find matches
var mql = window.matchMedia("(orientation: portrait)");

// If there are matches, we're in portrait
if(mql.matches) {  
    // Portrait orientation
} else {  
    // Landscape orientation
}

// Add a media query change listener
mql.addListener(function(m) {
    if(m.matches) {
        // Changed to portrait
    }
    else {
        // Changed to landscape
    }
});

Media Query

使用css媒体查询:

/* portrait */
@media screen and (orientation:portrait) {
    /* portrait-specific styles */
}
/* landscape */
@media screen and (orientation:landscape) {
    /* landscape-specific styles */
}

参考资料

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文