uniapp 的scroll-view 回到顶部,但设置scrollTop不生效的问题解决

关键是设置scroll事件及赋值时要是延迟的,放在$nextTick或setTimeout

<scroll-view class="scroll_content" scroll-y="true" :scrollTop='scrollTop' @scroll='scroll'
            :style="{'top': listTop+'px',height:taskStatus===1?scrollHeight+'px':scrollHeight2+'px'}">
            <!-- 任务tab内容 -->
            <TaskInfo :taskInfos='taskInfo' v-show="currentTab==='task'"></TaskInfo>
            <!-- 反馈tab内容 -->
            <view v-show="currentTab==='feedback'"  style="display:flex;padding-bottom: 24rpx;">
                <TaskFeedBack ref='feedbackRef' :taskId='taskId' @processClick='handleProcessClick'></TaskFeedBack>
            </view>
            <!-- 资源tab内容 -->
            <TaskResource :taskId='taskId' ref="treeRef" :eventCode='eventCode' :stageId='stageId'
                v-show="currentTab==='resource'"></TaskResource>
        </scroll-view>
data(){
  rerurn{
    scrollTop:0,
    oldScrollTop:0,
  }
}
scroll(e){
        this.oldScrollTop = e.detail.scrollTop;
},
//切换tab
handleClickSegment(e) {
    this.currentTab = e.value;
    this.scrollTop = this.oldScrollTop;
    setTimeout(() => {
        this.scrollTop=0
    },100)
},
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容