美文网首页
vue 选中的元素快速滑动到指定位置,元素保持在可视范围

vue 选中的元素快速滑动到指定位置,元素保持在可视范围

作者: 爱学习的小仙女早睡早起 | 来源:发表于2021-08-18 10:04 被阅读0次

需求:打开不同用户的角色弹窗 ,选中的角色始终呈现在可视区域


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,效果也没有问题!

相关文章

网友评论

      本文标题:vue 选中的元素快速滑动到指定位置,元素保持在可视范围

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