ios端兼容input光标高度

问题详情描述:

出现原因分析:

解决办法:

.content {
  float: left;
  box-sizing: border-box;
  height: 88px;
  width: calc(100% - 240px);
  .content-input {
    display: block;
    box-sizing: border-box;
    width: 100%;
    color: #333333;
    font-size: 28px;
    //line-height: 88px;
    padding-top: 20px;
    padding-bottom: 20px;
  }
}

ios端上下滑动时卡顿、页面缺失

问题详情描述:

出现原因分析:

解决办法:

*{  -webkit-overflow-scrolling: touch;}

But,这个属性是有bug的,比如如果你的页面中有设置了绝对定位的节点,那么该节点的显示会错乱,当然还有会有其他的一些bug。

拓展知识:

-webkit-overflow-scrolling:touch是什么?

ios键盘唤起后收起页面不归位

问题详情描述:

出现原因分析:

解决办法:

<div class="list-warp">
  <div class="title">
    <span>投·被保险人姓名</span>
  </div>
  <div class="content">
    <input
      class="content-input"
      placeholder="请输入姓名"
      v-model="peopleList.name"
      @focus="changefocus()"
      @blur.prevent="changeBlur()"
    />
  </div>
</div>
changeBlur(){
  let u = navigator.userAgent, app = navigator.appVersion;
  let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
  if(isIOS){
    setTimeout(() => {
      const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0
      window.scrollTo(0, Math.max(scrollHeight - 1, 0))
    }, 200)
  }
}
拓展知识:

安卓弹出的键盘遮盖文本框

问题详情描述:

出现原因分析:

解决办法:

changefocus(){
  let u = navigator.userAgent, app = navigator.appVersion;
  let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
  if(isAndroid){
    setTimeout(function() {
      document.activeElement.scrollIntoViewIfNeeded();
      document.activeElement.scrollIntoView();
    }, 500);
  }
},

拓展知识:

 

问题详情描述:

出现原因分析:

解决办法:

   

总结

    欢迎关注公众号,进一步技术交流:

12-14 00:25