判断是否是移动端是否横屏的方法

移动端具有window.orientation属性,

它返回视口相对于设备自然方向的角度。

可能的值是-90090,和180,其中正值是顺时针,负值是逆时针的。

监听orientationchange事件监听屏幕变化,如果不支持用resize,

function is_mobile_horizontal() {
            function cb() {
                if (window.orientation == undefined) {
                    return ‘Not mobile‘;
                }
                if (window.orientation == 180 || window.orientation == 0) {
                    alert(‘竖屏‘)
                }
                if (window.orientation == 90 || window.orientation == -90) {
                    alert(‘横屏‘)
                }
                return;
            }
            cb();
            window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", cb, false);
}

此外,还可以使用Javascript提供的 MediaQueryList 对象接口判断是否横屏,使用如下语句

window.matchMedia("(orientation: portrait)")

有两个参数,"(orientation: portrait)" (竖屏)和 “(orientation: landscape)”(横屏)

返回一个MediaQueryList 对象

这是一个动态的对象,是当前状态的一个快照,随状态动态变更。

该对象接口的实质是指定输出设备中的页面可见区域高度大于或等于宽度,则为portrait,与css3媒体查询orientation效果一致。

可以在pc端和移动端使用。

使用添加事件监听的方式检测屏幕改变,有两种方式

window.matchMedia("(orientation: portrait)").addListener(cb);
window.matchMedia("(orientation: portrait)").onchange = cb;  

移除监听的方法

window.matchMedia("(orientation: portrait)").removeListener(cb);;
window.matchMedia("(orientation: portrait)").onchange = null;
function is_horizontal(){
            let cb = function(){console.log(window.matchMedia("(orientation: portrait)").matches ? "竖屏" : "横屏");};
            let match_media_list = window.matchMedia("(orientation: portrait)");
            match_media_list.addListener(cb);
            return cb();
}

  

  

原文地址:https://www.cnblogs.com/usebylgb/p/10894079.html

时间: 2024-11-25 17:27:00

判断是否是移动端是否横屏的方法的相关文章

判断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式

第一个版本: //return true in big-endian machines bool check_big_endian1() { int a = 0; int *p = &a; *(char *)p = 1; return a != 1; } 采用union的第二个版本: //return true in big-endian machines bool check_big_endian2() { union{ int a; char b; }var;//sizeof(var)=4

JavaScript方式判断是否为移动端浏览器

<script type="text/javascript">              if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Opera Mobi|Windows CE|Symbian|Windows Phone|POLARIS|lgtelecom|nokia|SonyEricsson|LG|SAMSUNG|Samsung/i                      .tes

判断浏览器是pc端和移动

/** * 判断浏览器是pc端和移动端,并跳转到不同页面 */ function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; var bI

js判断手机浏览器操作系统和微信浏览器的方法

做手机端的前端开发,少不了对手机平台的判断.如,对于app下载,就要判断在Android平台下就显示Android下载提示:在iOS平台下就显示iOS下载提示. 今天就为大家介绍一下用js判断手机客户端平台及系统平台的方法: <script type="text/javascript"> //手机端判断各个平台浏览器及操作系统平台 function checkPlatform(){ if(/android/i.test(navigator.userAgent)){ docu

移动端图片上传方法【更好的兼容安卓IOS和微信】

之前的移动端上传的方法,有些朋友测试说微信支持不是很好,还有部分安卓机也不支持,其实我已经有了另一个方法,但是例子还没整理出来,而联系我的很多朋友需要,所以就提前先发出来了,并且做一个简单的说明,就不做一个demo了. <!doctype html>  <html>  <head>  <meta charset="utf-8">  <meta name="viewport" content="width

JS判断Android、iOS或浏览器的多种方法(四种方法)

第一种:通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端. 代码如下: <script type="text/javascript"> var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)?

(转)java判断string变量是否是数字的六种方法小结

java判断string变量是否是数字的六种方法小结 (2012-10-17 17:00:17) 转载▼ 标签: it 分类: 转发 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.println(str.charAt(i)); if (!Character.isDigit(str.charAt(i))){ return fal

判断是否从微信进入的两种方法:

JS方法: $(function(){ is_weixn(); }) function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { alert('请在微信中打开!'); window.location.href="<?php echo site_url('w

判断linq语句结果是否为空的方法

如: var TasComID = (from ee in LinkToSQL.TasCom                                where ee.TasComNum == cbb_TasComNum.SelectedItem.ToString() && ee.IsDeleted == false                                select ee.TasComID).Distinct(); if(TasComID.FirstOrDe