不知道UI抽什么风,所有列表都没用分页器,一律采用滚动加载。但我又是个懒蛋,不想手写所以就用了element-plus的无限滚动,但是v-infinite-scroll和el-table这俩搁一块就有bug了啊!!!在网上找了半天没遇到相似问题,现在来记录一下。
问题描述
本次开发中其实可以不用el-table的,因为这个列表并不展示头部,但是我又极其热爱el-table,所以不顾老大劝阻还是用了。好了好了,问题就是——列表滚动分页,但是滚动条定位底部不回弹导致接口不断请求。
BUG原因
由于 chrome 56 以及之后版本,开启了 “滚动锚定(Scroll Anchoring)” 这个功能 ,当我们滑动鼠标滑轮后表格加载大量数据,滚动条会自动跑到最底部并且定位到底部。这就会触发滚动加载,导致不断请求接口。
解决办法
在出现问题的元素上也就是绑定v-infinite-scroll的元素加上 overflow-anchor这个属性,问题就解决啦。
overflow-anchor: none;
扼要代码示例