需求:打开不同用户的角色弹窗 ,选中的角色始终呈现在可视区域
image.png
1、给要滑动的元素添加ref属性: ref="lef_radio"
目的是要找到要滚动的元素,非vue框架用其他方法即可。
<div v-for="(item,index) in dataRole" :key="index">
<input
v-model="checked2"
:value="item.id"
ref="lef_radio"
type="radio"
style="font-size: 16px;cursor: pointer"
>
</div>
2、找到要进行滑动的dom
// 找到要进行滑动的dom
if (roleed.length > 0) {
this.checked2 = roleed[0].id
// 开始
this.$nextTick(()=>{
this.$refs.lef_radio.forEach((item,index)=>{
if(item.value == roleed[0].id){ // 判断选中的dom为要滑动的dom
item.scrollIntoView({ behavior: "instant"}) // 滑动到可视区域
}
})
})
}
3、滑动方法
item.scrollIntoView({ behavior: "instant"}) // 滑动到可视区域 instant快速滚动
一个页面左右俩个box分别要滚动,执行了两次scrollIntoView,效果也没有问题!
网友评论