您的位置:首页 > 其它

电脑PC页面和手机移动页面适配跳转

2018-01-22 16:18 363 查看


电脑PC页面和手机移动页面适配跳转

html页面,涉及到检测终端的问题,如果是电脑端,就跳到PC版页面;如果是手持端设备,就跳转到指定的shou网页上。


方法一、@media screen

思路:css使用媒体查询,当屏幕小于760px时,使某个元素的样式发生改变,然后通过js检测到这个改变,就可以知道现在切换到移动端了

css代码:

 js代码:

if( getClass(document.getElementById('someElement'),'display') === 'none') {
window.location.href = '' //链接手机端网页
} else {
window.location.href = '' //链接电脑端网页
}
//兼容获取非行间样式
function getClass(obj,name)
{
if(obj.currentStyle)
{
return obj.currentStyle[name];//IE下获取非行内样式
}
else
{
return getComputedStyle(obj,false)[name];//FF、Chorme下获取非行内样式
}
}


方法二、通过navigator.userAgent字符串检测

思路:Navigator对象包含有关浏览器的信息,通过检测userAgent字符串,然后使用正则表达式进行匹配,我们自然就能知道用户是否在使用移动端的浏览器啦

先上个简化版的,意思意思下

 其实还可以用jQuery,but jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version:

通过上面那段代码基本就能检测到我们能常用的移动终端了,但是后来我在stackoverflow发现一哥们检测得更加全面牛逼:


方法三、通过Window.matchMedia()检测

思路:Window.matchMedia()用来检查mediaquery语句,扔个MDN的传送门。它返回一个MediaQueryList对象。该对象有两个属性

media:查询语句的内容。

matches:如果查询结果为真,值为true,否则为false

代码实现如下:

如果在PC端上使用Window.matchMedia()的话IE10以下是不支持的,但是我们只是用来检测终端哈,IE不支持就算了,移动端上安卓3.0以上都没有问题,so~~


方法四、检测移动端的TouchEvent事件

思路:使用document.createEvent()创建TouchEvent事件,如果成功那就是移动端了,返回true,pc端是没有TouchEvent事件的,所以会出错,返回false

代码实现:

 简洁方便~~


方法五、使用Device.js库

这个库就没啥好讲的了,自己跟着套代码就OK

github地址 https://github.com/matthewhudson/device.js

不想看英文的孩子,扔个中文教程 https://segmentfault.com/a/1190000000373735
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: