表格滚动分页加载——使用element-plus的无限滚动v-infinite-scroll与el-table同时使用出现滚动条定位到底部导致一直请求接口

不知道UI抽什么风,所有列表都没用分页器,一律采用滚动加载。但我又是个懒蛋,不想手写所以就用了element-plus的无限滚动,但是v-infinite-scroll和el-table这俩搁一块就有bug了啊!!!在网上找了半天没遇到相似问题,现在来记录一下。

问题描述
本次开发中其实可以不用el-table的,因为这个列表并不展示头部,但是我又极其热爱el-table,所以不顾老大劝阻还是用了。好了好了,问题就是——列表滚动分页,但是滚动条定位底部不回弹导致接口不断请求

BUG原因
由于 chrome 56 以及之后版本,开启了 “滚动锚定(Scroll Anchoring)” 这个功能 ,当我们滑动鼠标滑轮后表格加载大量数据,滚动条会自动跑到最底部并且定位到底部。这就会触发滚动加载,导致不断请求接口。
表格滚动分页加载——使用element-plus的无限滚动v-infinite-scroll与el-table同时使用出现滚动条定位到底部导致一直请求接口_第1张图片

解决办法
在出现问题的元素上也就是绑定v-infinite-scroll的元素加上 overflow-anchor这个属性,问题就解决啦。


 overflow-anchor: none;

扼要代码示例

表格滚动分页加载——使用element-plus的无限滚动v-infinite-scroll与el-table同时使用出现滚动条定位到底部导致一直请求接口_第2张图片
表格滚动分页加载——使用element-plus的无限滚动v-infinite-scroll与el-table同时使用出现滚动条定位到底部导致一直请求接口_第3张图片
表格滚动分页加载——使用element-plus的无限滚动v-infinite-scroll与el-table同时使用出现滚动条定位到底部导致一直请求接口_第4张图片

你可能感兴趣的:(前端生涯中奇怪的bug,vue.js,前端,javascript)