H5竖屏提示

算法调
• 阅读 3931

在做h5展示页面的时候 考虑到许多css样式在横屏会出现布局错乱, 为防止提示用户横屏显示

demo介绍

在做h5展示页面的时候 考虑到许多css样式在横屏会出现布局错乱, 为防止提示用户横屏显示

使用 html5屏幕旋转事件 onorientationchange 事件;

使用 css3 animation 动画;

H5竖屏提示

html

<div id="tip">
        <i class="icon"></i>
        <p>为了更好的体验,请使用竖屏浏览</p>
</div>

css

    *{
        margin: 0;
        padding: 0;
    }

    /* 容器 */

    #tip {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 999;
        width: 100vw;
        height: 100vh;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background-color: rgba(0, 0, 0, 1);
    }

    /* 手机图片 */

    .icon {
        display: inline-block;
        width: 67px;
        height: 109px;
        background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIYAAADaCAMAAABU68ovAAAAXVBMVEUAAAD29vb////x8fH////////x8fH5+fn29vby8vL////5+fn39/f6+vr////x8fH////////+/v7////09PT////x8fH39/f////////////////////x8fH///+WLTLGAAAAHXRSTlMAIpML+gb4ZhHWn1c2gvHBvq1uKJcC6k8b187lQ9yhhboAAAQYSURBVHja7d3blpowFIDhTUIAOchZDkre/zE7ycySrbUUpsRN2/1fzO18KzEqxEVgTiZNfgmmtxRc8iaR8HNe8x4BtjQePKayYCIoyBSgvNNE1AkNSHqZyLqk97EgUCCHBzZ5mkg7ScvIJuIyOyXBRFxgpqWZyGsAZLB1KjsJi8nutHU4JCRbFRH8tmirI9k8Jx2sqNs8K/m0LQkrktO2crgcgXGB4AiTEsB0hJfo9MGgX7CGcYiYwQxmMOOvZwRhBG8tCoMXjBDeXvWCEcHbi14wgCBmMIMZzGAGM5jxETNwzMAxA8cMHDNwzMAxA8cMHDNwzMAxA8cMHDNwzMAxY6E2rUQxnH2tz9cirlJFwFBJedaPnUv0M7++egPDE8iAJcIDmxwH5wwv9vUviw2kLbVO3TJU5uul/EyB0FoLp4x60PdGUd3qPurrWyjGGTc05u+1dcgI7/+tCCPARWGhH7o5Y7RCf+bH9ctXLp6v2BVDxfqz0oPXeSVaNtINo/1SXDv4dck8IIkbhtC2ol+iouEonTBCbYvVMnXOjxww6s/RFrBUpXHh/gw1rHj5d/qhYn9Gpk2FWh6xRBRX5Oj3Znh2Sq49/L6+y8pB26q9GbE2dbA2mVbx6I+7MfBglLCttm73ZQi7AD3iL4HqjFYJHSPRppqaUaJ3ATpGa+ckpGak2hRRMyqjGMkvl+xyFeSMwjAqcsZgGDdyhl0oNTnDN4yenJGZFGxNChP5/Y3efh6SM2rDOJMzboYxkDMqwyjIGcIw6F+io2FU1IxIm1JqRmgXSkvNKNCXeTpGrU0JNSO2c6LIGPgCS8AuDHz9ta0SXWDtxoDRH+MqlbC2Dt2G2JFRadtQZt2qq/orGowdGb2euxYiqWEpVWhTBnszoNAPdStuQwxqf0aocdWKW4Z+DfszIh8pxJqbuCE4YAC+4bm0evtipjpgJHeFnyyt1Ku2xa0bhjxr27p75rECNwyI9ZwvXkHq+7aTaMEV44YYy/spfgjgjNHaWW+GeUhGEX7tLlVinIFDDSgnOwhi1V6bU0b6tVS9eAERe863g4dRrtiHdc6o+nn5vtyVVgR79Cqt4uL6gfHPQyGqtP2vf7HADGbcYwaOGThm4JiBYwaOGThm4JiBYwaOGThm4JiBYwaOGThm4JiBYwaOGThm4JjhtOM+J/AgT008yDMkN/dPP9hzS8zAMQN3OEYeekp5YU7KOKXwVXqiY+QS7smcinGKABWdiBgpPJTSMHJ4KidhhPBUSMLw4CmPhKHgKUXCkHsygum71ftNSgCX6bsl8FQyfbcL5EdYsDk0R3j7aiA5wpt5AjKg/2gLJEBD/0Hf2OOf/vRrj6z/7GtP4B3nMKyjHA12kIPSjnJs3FEO0TvKkYJHOWCR+rjJH0Vn6fI5PjNbAAAAAElFTkSuQmCC");
        transform: rotate(90deg);
        animation: rotation infinite 1.5s ease-in-out;
        background-size: 67px 109px;
        margin-bottom: 2em;
    }

    /* 提示文本 */

    #tip p {
        color: white;
        font-size: 2em;
    }

    /* 手机旋转动画 */

    @keyframes rotation {
        10% {
        transform: rotate(90deg);
        }
        50% {
        transform: rotate(0);
        }
        60% {
        transform: rotate(0);
        }
        90% {
        transform: rotate(90deg);
        }
        100% {
        transform: rotate(90deg);
        }
    }

JavaScript

    ;(function screenStatus() {
        const element = document.querySelector('#tip');
        element.style.visibility = 'hidden';
        const status = "onorientationchange" in window ? "orientationchange" : "resize";
        window.addEventListener(status, e => {
            if (window.orientation === 180 || window.orientation === 0) {
                element.style.visibility = 'hidden';
            }
            if (window.orientation === 90 || window.orientation === -90) {
                element.style.visibility = 'visible';
            }
        });
    }());
判断 浏览器是否支持h5屏幕旋转事件onorientationchange,否则用resize事件
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
vue video全屏播放
需求:1、视频为长方形,页面初始化打开为横屏全屏播放视频。2、微信不支持自动播放,故自动播放需求删除。方法:1、vuevideoplayer插件因需求较简单,仅要求播放本地一个视频,故未选择使用插件。2、video<divid"video_box"style"zindex:999;":cl
风花雪月 风花雪月
2年前
html加css样式,不用js实现切换内容,直接上测试代码!
/清样式,如果是项目中,不推荐使用通配符来清样式,建议使用标签清样式,通配符清样式会增加页面压力/margin:0;padding:0;/宽度为屏宽的一半,高度为屏高的一半,然后居中/.boxwidth:50vw;height:50vh;margin:0a
Wesley13 Wesley13
3年前
iOS常用控件尺寸大集合
全:http://dangpu.sinaapp.com/?p59(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fdangpu.sinaapp.com%2F%3Fp%3D59)StatusBar的高度(横、竖屏):  20NavigationBar的高度(竖屏)
Wesley13 Wesley13
3年前
H5游戏开发:横屏适配
!(https://oscimg.oschina.net/oscnet/47de65ea09400742fe6f94e31617515ec36.jpg)对于移动端的轻量级HTML5互动小游戏(简称为H5轻互动),如果从屏幕呈现模式来划分的话,可以归类为:竖屏式和横屏式。!(https://oscimg.oschina.
Stella981 Stella981
3年前
MyRocks vs InnoDB 的性能基准测试
导读作者:VadimTkachenko原文:https://www.percona.com/blog/2018/04/30/alookatmyrocksperformance/翻译:菜鸟盟(hades、bruce、冰焰)本文建议横屏阅读,效果更佳In
Stella981 Stella981
3年前
Nacos 服务注册中心探秘(一)
Nacos服务注册中心探秘(一)手机用户请横屏获取最佳阅读体验,REFERENCES中是本文参考的链接,如需要链接和更多资源,可以关注其他博客发布地址。平台地址CSDNhttps://blog.csdn.net/sinat\_28690417简书https://www.jiansh
Wesley13 Wesley13
3年前
Unity横屏
Android下发现Unity里面的Player设置,并不能完全有效,比如打开了自动旋转,启动的时候还是会横屏,修改XML添加以下代码<applicationandroid:icon"@drawable/ic\_launcher"                    android:label"@string/app\_name"
Stella981 Stella981
3年前
Activity切换导致的onCreate重复执行[转]
部分网友会发现Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT,会重新切换Activity会触发一次onCreate方法,我们可以在androidmanifest.xml中的activit元素加入这个属性android:configChanges"orientation|keyboardHidden"即可,比如 
Stella981 Stella981
3年前
Chrome扩展程序一键生成网页骨架屏
对于依赖接口渲染的页面,在拿到数据之前页面往往是空白的,为了提示用户当前正在加载中,往往会使用进度条、loading图标或骨架屏的方式。对于前两种方案而言,实现比较简单;本文主要研究骨架屏的应用及实现,并给出一种使用Chrome扩展工具快速生成骨架屏的方案。首先看看效果先放一个动图展示!(https://oscimg.oschina
iOS16新特性:实时活动-在锁屏界面实时更新APP消息 | 京东云技术团队
简介之前在里介绍了iOS16新的特性:实时更新(LiveActivity)中灵动岛的适配流程,但其实除了灵动岛的展示样式,LiveActivity还有一种非常实用的应用场景,那就是锁屏界面实时状态更新:上图是部分已经做出适配的APP,锁屏实时活动的展示。可
阮小五 阮小五
2个月前
一键抠像+自动剪辑 Premiere Pro 2025 让创作更智能
核心功能介绍✅AI智能剪辑增强AutoReframe(自动重构图):智能识别主体,适配不同画幅(横屏→竖屏)。AI音频降噪:一键消除背景杂音,人声更清晰。智能色彩匹配:自动分析并统一多片段色调,告别手动调色。✅性能全面升级全新多帧渲染引擎:支持AppleS