美文网首页
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