h5横竖屏监测,在手机上模拟有时监测有误

发布于 2022-09-05 15:36:41 字数 1856 浏览 19 评论 0

  1. 在手机上竖屏打开,提示‘横屏效果更好’
  2. 横屏后,显示“小主真棒”
  3. 然后再竖屏,提示‘横屏效果更好’
  4. 关掉页面
  5. 横着拿手机
  6. 再打开页面(此时手机是横着的),提示‘横屏效果更好’

示例代码
链接

<html>
  <head>
    <meta charset="UTF-8">
    <style>
      html{
        font-size: 100px;
      }
      #example{
        font-size: 35px;
      }
    </style>
  </head>
  <body>
    <div id="example">
      <div v-if="flag" class="landscape-body">
         小主,您真棒,已经横屏~~~{{flag}}
      </div>
      <div v-else class="portrait-body">
        小主,横屏效果更好,把您的设备开启横屏体验吧3333333333~~~{{flag}}
      </div>
    </div>
    <script src="./lib/vue.min.js"></script>
    <script>

      

      var vm = new Vue({
        el:"#example",
        data:{
          flag:true
        },
        created:function(){
          var _this = this;
          window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
            _this.orientationFun();
          }, false);
          _this.orientationFun();
        },
        methods:{
          orientationFun:function(){
            var width_doc = screen.width;
            var height_doc =  screen.height; //文档流的高度
                // var _height =  screen.height; //屏幕的高度
            // if (window.orientation == 180 || window.orientation == 0) {
            if(width_doc>height_doc){
              this.flag = true;
            }else{
               this.flag = false;
            }
            // if (window.orientation == 90 || window.orientation == -90 ){
            //   this.flag = false;
            // }
          }
        }
      })
    </script>
  </body>
</html>

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

差↓一点笑了 2022-09-12 15:36:41

希望对你有用
window.addEventListener('orientationchange', function(event){

if ( window.orientation == 180 || window.orientation==0 ) {
    alert(" 小主,横屏效果更好,把您的设备开启横屏体验吧3333333333~~~");
}
if( window.orientation == 90 || window.orientation == -90 ) {
    alert("小主,您真棒,已经横屏~~~");
}

});

// css 媒体查询
@media screen and (orientation:portrait) {

/*  css[竖向定义样式]  */
//竖屏弹框  display:block; 
//js 控制弹框显示时间
......

}

@media screen and (orientation:landscape) {

/*   css[横向定义样式]  */
 //横屏弹框  display:block; 
//控制弹框显示时间 js 
......

}

有深☉意 2022-09-12 15:36:41

只监听resize试一下,我用LZ几乎相同方法,在安卓机型上遇到其他的问题了也,更改只是监听resize事件就可以了LZ可以自己试一下,如果还是不行的话,可以在判断的函数里边强制进行重拍,这是终极办法~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文