android - 我可以根据设备方向更改页面的 html 吗?

标签 android ios css html

<分区>


要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:Stack Overflow question checklist

关闭 9 年前

我正在构建一个非常简单的页面,只能在手机上查看。该页面的目的纯粹是提示人们以横向模式握住手机。

我希望能够做的是使用媒体查询或类似的东西来检测设备的方向。如果用户纵向拿着手机,我希望他们看到一条消息和一张图片,要求他们横向拿着手机。一旦他们将手机旋转到横向模式,屏幕上就会出现一个链接供他们点击。就是这么简单 - 但不幸的是,我只能找到根据设备方向更改样式表的代码,但没有任何东西可以让我真正更改页面的主体。谁能帮忙?

谢谢!

最佳答案

通过 Javascript,您可以使用全局属性“window.orientation”

当用户转动手机时,将执行事件“orientationchange”。例如你可以这样处理这个事件:

    $('body').bind('orientationchange', function(e) {
    alert("Smartphone was turned");
});

通过几行 Javascript 和 CSS,您可以向非横向用户展示不同的内容:

检查方向函数:

jQuery(function($) {
    $('body').bind('orientationchange', function(e) {
        check_orientation();
    });
    check_orientation();
});

因此该函数检查手机是否以“正确的方式”握住并显示/隐藏内容:

var check_orientation = function() {
    if(typeof window.orientation == 'undefined') {
        //not a mobile
        return true;
    }
    if(Math.abs(window.orientation) == 90) {
        //portraitmode
        $('#landscape').fadeOut();
        return true;
    }
    else {
        //landscape mode
            $('#landscape').fadeIn().bind('touchstart', function(e) {
            e.preventDefault();
        });
        return false;
    }
};

你的 content-div 的标签:

<div id="landscape">Bitte drehen Sie Ihr Gerät!</div>

和你的 css-entry:

#landscape {  
    display:none;
    position:fixed;
    width:100%;
    height:100%;
    left:0;
    top:0;
    background:rgba(0,0,0,0.75);
    z-index:1999;
}

关于android - 我可以根据设备方向更改页面的 html 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404432/

上一篇:javascript - 如何在 CodeMirror 3 中设置嵌套代码块的样式

下一篇:html - 导航链接上的响应式填充

相关文章:

ios - UICollectionView 垂直对齐部分和单元格

css - 如何去除 Safari 上的光泽效果

css - Safari 上 CSS3 rotateY 转换中的错误?

android - 使用日历获取时间直到给定唤醒时间

android - 时间/日期更改监听器

iphone - iPhone/Android 浏览器上的 Google Maps API InfoWindow 高度不正确

css - 网站在除 IE7 以外的所有方面都运行良好,

java - 如何正确调用延迟处理程序方法?

iOS 应用程序 ID 更改

ios - UITableView + 可触摸的UIView/UIScrollView behin