首先再HTML中使用组件
<el-scrollbar
ref="azeScroll"
style="height: 100%"
class="main-scrollbar"
wrap-class="default-scrollbar__wrap"
>
<keep-alive>
<router-view
v-if="$route.meta.keepAlive"
id="main_view"
></router-view>
</keep-alive>
<router-view
v-if="!$route.meta.keepAlive"
id="main_view"
></router-view>
</el-scrollbar>
我的需求是刚进页面就要定位
setTimeout(() => {
// locationY替换你想要的高度
this.$refs.azeScroll.wrap.scrollTop = locationY;
}, 1000);
所以这就是问题所在,如果不设置定时器那么刚进页面的时候因为数据没有生成,滚动条还没有高度,所以有些人怎么操作滚动条都是0,这里我只是用定时器说明一下这个情况
还有一个就是this.$refs.azeScroll.moveY, 通过源码观察有这个属性, 但是试了试 这个不更改视图位置,只是更改滚动条的位置