移动端WEBAPP开发遇到的坑,以及填坑方案!持续更新~~~~

时间:2022-01-15 05:51:08

前言:在移动端WEBAPP开发中会遇到各种各样的问题,通过此文对遇到的问题做一个归纳总结,方便自己日后查询,也给各位前端开发友人做一个参考。

     此文中涉及的问题是本人开发中遇到的,解决方案是本人思考和查询资料的结果,纯属于个人的见解,一个需求,纵有千百种实现方式,所以如有歧义,请温柔吐槽!

   此文会持续更新,前期内容会比较杂乱,待Q&A积累到一定量后,会进行整理。

css3

1、Q:css3动画在Ios运行正常,在Android无法运行。因‘-webkit-’前缀未正确书写导致

   A:-webkit-前缀没有写规范。以下是完整的css3动画代码(无限360°旋转)。'animation','@keyframes','transform' 需要在这三个地方都加上‘-webkit-’前缀,所以请检查下是否正确书写了前缀。

 img {
animation: payLoad .5s linear infinite;
-webkit-animation: payLoad .5s linear infinite
}
@keyframes payLoad {
from {
transform: rotate(0deg)
}
to {
transform: rotate(360deg)
}
}
@-webkit-keyframes payLoad {
from {
-webkit-transform: rotate(0deg)
}
to {
-webkit-transform: rotate(360deg)
}
}

点击事件

1、Q:touchend事件在Ios正常触发,在Android无法触发。因touchmove事件导致,据说是Android浏览器的BUG,请另行查询。

   A:请添加touchmove事件,执行‘e.preventDefault();’命令,这样就可以正常触发‘touchend’事件,但是单纯这么添加会导致所有的默认touchmove被禁止,所以请在命令前添加条件‘if else’,(具体条件根据项目需求添加)

 document.body.addEventListener('touchmove',function(e){
if(x>y){
e.preventDefault();
}
})

JavaScript

1、Q:js无法运行,使用了‘let’ ‘()=>{}’等es6新特性,无法兼容浏览器。

   A: 1、使用es5写法;2、使用babel等工具编译es6代码。