移动端网页注意事项 (5)

window.orientation ,取值:正负90表示横屏模式、0和180表现为竖屏模式;

window.onorientationchange = function(){ switch(window.orientation){ case -90: case 90: alert("横屏:" + window.orientation); case 0: case 180: alert("竖屏:" + window.orientation); break; } }

样式

//竖屏时使用的样式 @media all and (orientation:portrait) { .css{} } //横屏时使用的样式 @media all and (orientation:landscape) { .css{} } 19、audio元素和video元素在ios和andriod中无法自动播放

应对方案:触屏即播

$(\'html\').one(\'touchstart\',function(){ audio.play() })

可参考《 无法自动播放的audio元素 》

20、摇一摇功能

HTML5 deviceMotion :封装了运动传感器数据的事件,可以获取手机运动状态下的运动加速度等数据。

HTML5晃动DeviceMotionEvent事件

21、手机拍照和上传图片

使用 <input type=“file”> 的 accept 属性

<!-- 选择照片 --> <input type=file accept="image/*"> <!-- 选择视频 --> <input type=file accept="video/*">

使用总结:

ios 有拍照、录像、选取本地图片功能

部分android只有选取本地图片功能

winphone不支持

input控件默认外观丑陋

22、微信浏览器用户调整字体大小后页面变矬了,怎么阻止用户调整

原理 :

android侧是复写了 layoutinflater 对 textview 做了统一处理

ios侧是修改了 body.style.webkitTextSizeAdjust 值

解决方案 :

android使用以下代码,该接口只在微信浏览器下有效

/** * 页面加入这段代码可使Android机器页面不再受到用户字体缩放强制改变大小 * 但是会有一个1秒左右的延迟,期间可以考虑通过loading展示 * 仅供参考 */ (function(){ if (typeof(WeixinJSBridge) == "undefined") { document.addEventListener("WeixinJSBridgeReady", function (e) { setTimeout(function(){ WeixinJSBridge.invoke(\'setFontSizeCallback\',{"fontSize":0}, function(res) { alert(JSON.stringify(res)); }); },0); }); } else { setTimeout(function(){ WeixinJSBridge.invoke(\'setFontSizeCallback\',{"fontSize":0}, function(res) { alert(JSON.stringify(res)); }); },0); } })();

ios使用 -webkit-text-size-adjust 禁止调整字体大小

body{-webkit-text-size-adjust: 100%!important;}

***的解决方案:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggfyd.html