使用JS判断移动端手机横竖屏状态


Posted in Javascript onJuly 30, 2018

禁用用户自动缩放功能:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

判断横竖屏状态有两种方法:css判断、js判断

(一)、css判断横屏还是竖屏

1、写在同一个css文件中

@media screen and (orientation: portrait) {
 /*竖屏 css*/
} 
@media screen and (orientation: landscape) {
 /*横屏 css*/
}

根据横竖屏设置大小时,正常页面尺寸常规书写即可,横屏样式单独设置。即只需在原有样式基础上添加横屏样式即可,

@media screen and (orientation: landscape) {
 /*横屏 css*/
}

当用户横屏时加载横屏样式,竖屏时取消横屏样式即加载默认样式。

2、分开写在两个css中,根据横竖屏引用不同样式文件:

    根据横竖屏引用不同样式文件

横屏:

<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css" rel="external nofollow" >

竖屏:

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" rel="external nofollow" >

备注:css判断横竖屏是时时的可无缝衔接,即横屏加载横屏样式,竖屏加载竖屏样式,

(二)js判断横屏还是竖屏

//判断手机横竖屏状态:
  window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
    if (window.orientation === 180 || window.orientation === 0) { 
      console.log("竖屏");
      $(".codeIg_s").removeClass('vercreen');//取消横屏样式
    } 
    if (window.orientation === 90 || window.orientation === -90 ){ 
      console.log("横屏");
      $(".codeIg_s").addClass('vercreen');//添加横屏样式
    } 
  }, false);

备注:横屏样式在vercreen类名下修改原默认样式,可正常使用,缺点是必须有横竖屏的切换状态才会触发。

如果用户默认是横屏状态时不会触发横屏条件判断,只有用户从横屏转为竖屏或者从竖屏转为横屏时才会触发相应条件判断。

没有切换状态时会不执行任何条件判断,此处不如css判断横竖屏全面。

总结

以上所述是小编给大家介绍的使用JS判断移动端手机横竖屏状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
基于Jquery的跨域传输数据(JSONP)
Mar 10 Javascript
EasyUI中的tree用法介绍
Nov 01 Javascript
再次谈论Javascript中的this
Jun 23 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 Javascript
Vue.js系列之项目结构说明(2)
Jan 03 Javascript
JavaScript数据结构之单链表和循环链表
Nov 28 Javascript
详解使用vue-admin-template的优化历程
May 20 Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 #Javascript
详解JSON Web Token 入门教程
Jul 30 #Javascript
JS中Promise函数then的奥秘探究
Jul 30 #Javascript
浅析java线程中断的办法
Jul 29 #Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 #Javascript
如何在js代码中消灭for循环实例详解
Jul 29 #Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 #Javascript
You might like
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
linux环境下Django的安装配置详解
2019/07/22 Python
pandas的排序和排名的具体使用
2019/07/31 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
Python的条件锁与事件共享详解
2019/09/12 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
迟到检讨书800字
2014/01/13 职场文书
初三政治教学反思
2014/01/30 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
创先争优承诺书
2015/01/20 职场文书
文体活动总结
2015/02/04 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
python小型的音频操作库mp3Play
2022/04/24 Python
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android