美文网首页
分享踩坑点

分享踩坑点

作者: 懿小诺 | 来源:发表于2021-08-09 18:37 被阅读0次

大多数人都会遇到的几个兼容性坑

1、ios端微信h5页面上下滑动时卡顿、页面缺失+ios键盘唤起,键盘收起以后页面不归位

 onBlur(){
      / / 判断是ios
      if (this.$utils.isKyAppIos()) {
        var currentPosition,timer;
        var speed=1;
        timer = setInterval(function(){
          currentPosition = document.documentElement.scrollTop || document.body.scrollTop;
          currentPosition -= speed;
          window.scrollTo(0,currentPosition);//页面向上滚动
          currentPosition += speed;
          window.scrollTo(0,currentPosition);//页面向下滚动
          clearInterval(timer);
        },100);
        // window.scrollTo(0,0);
      }
    }

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

image.png

解决办法:给input和textarea标签添加focus事件,如下,先判断是不是安卓手机下的操作,当然,可以不用判断机型,Document 对象属性和方法,setTimeout延时0.5秒,因为调用安卓键盘有一点迟钝,导致如果不延时处理的话,滚动就失效了

Element.scrollIntoViewIfNeeded()方法用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。 如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。 此方法是标准的

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);       
  }
}, 

全局处理

    window.addEventListener('resize', function() {
            if(
                document.activeElement.tagName === 'INPUT' ||
                document.activeElement.tagName === 'TEXTAREA'
            ) {
                window.setTimeout(function() {
                    if('scrollIntoView' in document.activeElement) {
                        document.activeElement.scrollIntoView();
                    } else {
                        document.activeElement.scrollIntoViewIfNeeded();
                    }
                }, 0);
            }
        });

ElementUI 问题清单

1、form 下面只有一个 input 时回车键刷新页面

原因是触发了表单默认的提交行为,给el-form 加上@submit.native.prevent就行了。

<el-form inline @submit.native.prevent>
  <el-form-item label="订单号">
    <el-input
      v-model="query.orderNo"
      :placeholder="输入订单号查询"
      clearable
      @keyup.enter.native="enterInput"
    />
  </el-form-item>
</el-form>

2、表格固定列最后一行显示不全

image.png

这种情况有时在宽度刚好处于临界值状态时会出现。因为固定列是独立于表格body动态计算高度的,出现了固定列高度小于表格高度所以造成最后一行被遮挡。

// 设置全局
.el-table__fixed-right {
  height: 100% !important;
}

3、输入框用正则限制但绑定值未更新

<el-input 
  v-model="form.retailMinOrder" 
  placeholder="请输入" 
  onkeyup="value=value.replace(/[^\d.]/g,'')" 
/>

这样做虽然输入框的显示是正确的,但绑定的值是没有更新的,将 onkeyup 改为 oninput 即可。

·PS:经评论区的兄弟指正,输入中文后 v-model 会失效,下面的方式更好一点:

<el-input 
  v-model="form.retailMinOrder" 
  placeholder="请输入" 
  @keyup.native="form.retailMinOrder=form.retailMinOrder.replace(/[^\d.]/g,'')"
/>

下面是好玩的拖拽演示

相关文章

  • 分享踩坑点

    大多数人都会遇到的几个兼容性坑 1、ios端微信h5页面上下滑动时卡顿、页面缺失+ios键盘唤起,键盘收起以后页面...

  • 应届生和职场新人一定要知道的5个观点

    刚接触社会的应届生和职场新人总会踩很多坑,我把自己踩坑的感悟分享出来,避免大家踩坑。 文末有福利 1.以目标为导向...

  • 大数据爬坑收录

    爬出过的坑 大数据运维过程就是一个踩坑的过程。如下分享一些踩过的坑,以供参考。 Hive Spark Flink ...

  • 吃一堑长一智

    首先,要先吃一堑,俗称“踩坑”。 踩过坑,吃过亏,从中吸取一点教训,避免重复犯错误,这坑也算没有白踩。 最近看到一...

  • React通过fetch请求数据,实现导出功能,兼容火狐和IE

    最近项目中需要实现将数据导出excel表格功能,踩了很多坑,现在终于完美实现,分享给大家,希望能帮助大家少踩坑。

  • VUE 集成TypeScript之vue-router重构 (二

    VUE 如何集成TypeScript之初步踩坑 (一) vue-router的痛点 在上一篇分享中,我们已经成功的...

  • Android gradle 插件升级和 kts 迁移踩坑指南

    本文主要分享了 Android gradle 插件升级和 kts 迁移的相关知识和踩坑点。有个前置知识是依赖管理,...

  • iOS项目中误删文件然后还原导致的问题

    本人初学的iOS,由于自己摸索,导出踩坑,特此随笔几下我踩过的坑,老鸟就不用点进来了。 一、加强对这个坑的认识,毕...

  • Typescript踩坑点

    1,类型断言类型断言更像是类型的选择,而不是类型转换举例: 代码中要返回参数的长度,但是 length 可以是字符...

  • 对象赋值踩坑实录

    所谓高手,就是一个坑,一个坑踩出来的。 注意啦:点赞再看,养成习惯,你们的支持是我持续分享的最大动力(▽) 我最近...

网友评论

      本文标题:分享踩坑点

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