Web移动端常见兼容问题

##通用

-webkit-tap-highlight-color: rgba(0,0,0,0);触摸时颜色

css

android:

  • android4.4一下的不支持flexbox,需要用旧版flexbox;
 display: -webkit-box; /* display: flex; */
-webkit-box-pack: center;  /* justify-content: center; */
-webkit-box-align: center; /* align-items: center; */
-webkit-box-orient: vertical; /* flex-direction:column; */
-webkit-box-flex: 1.0; /* flex:1; */
-webkit-box-lines: multiple; /* flex-wrap: nowrap */

ios:

  • 父元素display: flex子元素绝对定位后,父元素的align-items:center会失效
  • -webkit-appearance: none; 清除输入框内阴影
  • animationtranslate 同时使用,需指定animation 的延迟,要大于 .5s。animation: pop-right 3s .5s infinite;,否则会失效
  • ios css3 加-webkit-前缀,系统7.0旧版本不兼容
  • -webkit-overflow-scrolling: touch; 解决ios overflow:scroll;滚动卡顿
  • background: url('./bg.jpg') 0 no-repeat/cover 不支持这种写法,cover跟在no-repeat后面

js

  • 解决移动端键盘弹起遮住输入框的问题
window.addEventListener("resize", function () {
    if (document.activeElement.tagName == "INPUT" || document.activeElement.tagName == "TEXTAREA") {
        document.activeElement.scrollIntoView();
    }
})
  • 阻止页面滚动
// 给蒙层阻止事件传递,蒙层是绝对定位后遮住body的
document.querySelector('#mask').ontouchmove = function(e){ 
    e.preventDefault();
}
  • 阻止左右滑动触发后退前进
// 可以在手指按下时添加这个事件,释放后删除
function disabledPrev(e) {
	e.preventDefault();
}
document.addEventListener("touchmove",disabledPrev(e),{passive:false});

ios

  • scroll事件不会实时触发,而是停止滚动后触发。ontouchmove 和 onscroll 一起使用
document.body.ontouchmove = function(){}
document.body.onscroll = function(){}
  • ios 的 new Date() 不支持 2018-9-14的方式,支持2018/9/14的方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值