scroll-view中通用属性scroll-top的使用

303 阅读1分钟

scroll-view可滚动视图区域。使用竖向滚动时,需要给scroll-view一个固定高度

属性类型必填默认值
scroll-topnumber/string设置竖向滚动条位置

当在同一个页面点击不同的按钮,渲染不同的数据时

当浏览该按钮对应的数据,使数据滚动(竖向)到非第一条数据时,切换按钮,却发现数据没有返回到第一条数据,而是停留在了上一个按钮浏览的位置,怎么处理这种出现的情况,使每次点击不同的按钮,都能使数据显示第一条数据

通过使用scroll-view中的通用属性scroll-top设置竖向滚动条位置为0

       <scroll-view scroll-y class="left">
          <view 
          @click="changeActive(index)"
          v-for="(item,index) in xxdata"
          :key="index"
        </scroll-view>
       <scroll-view scroll-y class="right" :scroll-top="scrollTop">
         <view v-for="item in 10" :key="item"></view>
        </scroll-view>
        
export default {
    data(){
        return{
            scrollTop:0,
            rightList:[]
        }
    },
     methods:{
      changeActive(index){
        // 根据索引找到对应的右侧分类数据
        this.rightList=this.xxdata[index].children
        // 先将scrollTop设置为-1,为了让scrollview能检测到滚动数据的变化
        // console.log(this.rightList);
        // 更新前设置为-1
        this.scrollTop=-1
        // 数据更新后,视图的更新是异步的
        // 更新后设置为0
        this.$nextTick(()=>{
          // scroll-view滚到顶部
          this.scrollTop=0
        })
      },
    }  

需要注意的是,先设置scroll-top为-1在设置为0,才能检测到数据的变化,才能够让scroll-view真正的滚过去