美文网首页
常见问题-6

常见问题-6

作者: skoll | 来源:发表于2023-03-25 23:37 被阅读0次

h5网站设置为type=number 的问题

1 .maxlength属性不好用,需要自己在oninput上面重写这个函数

function checkMaxLength(obj,len){
  if(obj.value.length>len){
     obj.value=obj.value.substr(0,len)
  }
}

2 .form 提交的时候默认取整:这种我一般都是直接提交一个json,不是form的方式提交

<input step='0.01'></input>

3 .不分安卓手机样式会有问题,需要重置样式

input,textare{
  border:0;
-webkit-appearance:none;
}

往返缓存问题

1 .点击浏览器的回退不会自动执行js,也别是移动端ios里面,主要原因是点击返回按钮的时候,之前的页面做了缓存,

window.addeventlistener('pageshow',()=>{
  window.reload()
//或者在这里再出发一下页面组件的onMounted事件
})

2 .onpageShow 每次页面加载都会触发,无论是从缓存中加载还是正常加载,这是他和onload的区别。persisted可以判断页面是否从缓存中读出

ios中input 键盘对keyup,keydown,keypress等支持不好的问题

1 .某些事件检测不到中文输入,某些事件检测不到英文输入。所以统一用html5的oninput事件来替代keyup
2 .包括select,radio,checkbox等也是用这个

ios键盘首字母输入,默认大写字母的解决方案

<input autocapitalize='off' autocorrect='off'></input>
1 .这个要不要改变感觉还是要看用户的使用习惯,有的人可能就习惯了切换一下

某些情况非可点击元素label,span等监听click事件,ios下不会触发

1 .cursor:pointer

输入框默认字体颜色

input:-webkit-input-placeholder,textarea::-webkit-input-placeholder{
color:"red"
}

ios 上拉边界下拉出现空白

document.body.addEventListener(
  'touchmove',
  function(e) {
    if (e._isScroller) return
    // 阻止默认事件
    e.preventDefault()
  },
  {
    passive: false
  }
)

ios 下fixed失效

1 .软键盘唤起之后,页面的fixed元素将失效,会变成absolute,所以当页面超过一屏时,失效的fixe元素就会跟随滚动了。
2 .不仅仅局限于type=text的输入框,凡是软键盘,比如时间日期选择器,select等被唤起的时候,都会遇到同样的问题
3 .解决方案

不让页面整体滚动,而是单个的自己滚动,主体高度设为100%,overflow:scroll

4 .其他问题

1 .fixed 定位的容器内不能有input,在input聚焦的时候去掉fixed状态,改为absolute,绝对定位的效果通过js来实现
2 .不要再可滚动的容器内包含fixed定位的子元素
3 .键盘唤起后,页面的 fixed 元素将失效(即无法浮动,也可以理解为变成了 absolute 定位),所以当页面超过一屏且滚动时,失效的 fixed 元素就会跟随滚动

5 .根据这些原则,移动端最高不用fixed元素,会有很多问题,但是自己的项目没遇到过这些问题,是没测出来,还是一屏页面导致这些bug没有暴露出来

相关文章

网友评论

      本文标题:常见问题-6

      本文链接:https://www.haomeiwen.com/subject/igmerdtx.html