• 移动端强制横屏显示


    记下一些项目中的总(da)结(keng)“移动端强制横屏显示页面”:

    开发后效果如下(请原谅小弟没水果手机):

    思路:通过好用的媒体查询检测屏幕方向,若为竖屏则将页面 ‘强制横屏’ 展示,并通过 横竖屏 动态设置 rem 方式保证适配,那么如何强制横屏呢?代码如下↓↓↓↓↓↓↓↓↓↓↓↓↓

    核心代码:css/js

     1 /*
     2  * 强制横屏显示:通过竖屏时旋转解决横屏问题
     3  * 
     4  */
     5 @media screen and  (orientation:  portrait){
     6     #wrapper {
          
    7 -webkit-transform:rotate(90deg); 8 -webkit-transform-origin:0% 0%;/*1.重置旋转中心*/ 9 10 -moz-transform: rotate(90deg); 11 -moz-transform-origin:0% 0%; 12 13 -ms-transform: rotate(90deg); 14 -ms-transform-origin:0% 0%; 15 16 transform: rotate(90deg); 17 transform-origin:0% 0%; 18 19 width: 100vh;/*2.利用 vh 重置 ‘宽度’ */ 20 height: 100vw;/* 3.利用 vw 重置 ‘高度’ */ 21 22 top: 0; 23 left: 100vw;/* 4.旋转后页面超出屏幕,重置页面定位位置 */ 24 } 25 }
     1 setRem();
     2         window.addEventListener("onorientationchange" in window ? "orientationchange":"resize",function(){
     3             setRem();
     4         });
     5         function setRem(){
     6             var html = document.querySelector("html");
     7             var width = html.getBoundingClientRect().width;
     8             var height = html.getBoundingClientRect().height;
     9             //判断横屏
    10             if(width < height){
    11                 //竖屏
    12                 html.style.fontSize = height/16 +"px";
    13             };
    14             if(width > height){
    15                 //横屏
    16                 html.style.fontSize = width/16 +"px";
    17             }
    18             
    19         }

    1.旋转中心的设置,大家知道默认旋转中心为 x,y 的 50% 50%, 如果不重置的话你将看到下面图片的效果(我一开始看到这个效果内心只有 ‘啥玩意’ 这三个字):

    2.重置旋转中心并旋转90°后的效果(需要通过定位属性重置页面位置):

    重置旋转点后页面位置旋转到 ‘红框’ 位置了,此时将其定位回来就可以了(left:100vw

    3.此时页面已经旋转过来了我们需要重置页面的宽高,让其原本页面宽度等于旋转后屏幕的高度(即100vh),原本高度等于屏幕的宽度(即100vw);这样页面就能保证100%撑满屏幕了;

     4.页面开发按 横屏设计图 和 水果6手机 的分辨率做的 rem 适配,页面竖屏和横屏时别忘记重置rem跟标签rem比值以达到横竖屏缩放效果相同;

     

    最后注意:如果页面中有select(option展开方向问题),canvas(有点击事件,点击位置错位问题)还需要单独处理

  • 相关阅读:
    数组与指针
    壁纸
    2019/1/11
    指针A
    数组B
    一起来抓老鼠啊!快乐呀!
    打印沙漏
    I think I need a boat house
    币值转换
    《C语言程序设计》编程总结汇总
  • 原文地址:https://www.cnblogs.com/cy3664983/p/9101542.html
Copyright © 2020-2023  润新知