婧若钰熙 发表于 2024-5-27 14:20:23

uni-app 滚动到指定位置的操作方法


方法1:使用标签,可以将页面横向(或纵向)滚动到指定位置
无法滚动 将代码放在setTimeout,nextTick里执行
<!-- 左边 -->
                        <scroll-view show-scrollbar="false" scroll-y="true" class="left-box"
                                :scroll-top="scrollLeftTop" scroll-with-animation="true">
                                <view class="scroll-view-item" v-for="(item,index) in servicesLeftList" :key="item.id"
                                        :id="'scroll' + activeLeftTab" :class="{'active':activeLeftTab==item.id}">
                                        {{item.name}}
                                </view>
                        </scroll-view>data(){
return {
servicesLeftList:[],
scrollLeftTop:0,,//滚动位置
activeLeftTab:"" //选中的样式
}
}
getData() {
        //接口
        getServicesTree().then(res => {
                this.servicesLeftList= res.data
                res.data.forEach((item, ind) => {
                                setTimeout(()=>{
                                        uni.createSelectorQuery().in(this).select('#scroll' + item.id)
                                                .boundingClientRect(res => {
                                                        scrollLeftTop.value = 65 * ind; // 设置滚动条距离左侧的距离                                            
                                                }).exec()
                                },100)
                })
        })
}方法二 使用uni.pageScrollTo 使页面纵向滚到到指定位置
建议设置height为auto :height:auto
<view class="left-box" >
                                <view class="scroll-view-item" v-for="(item,index) in servicesLeftList" :key="item.id"
                                       :class="{'active':activeLeftTab==item.id}">
                                        {{item.name}}
                                </view>
                        </view>
//方法
uni.pageScrollTo({
        scrollTop: 0,
        duration: 500
});方法三 用scroll-view描点
//左边 :scroll-top="scrollLeftTop"
<scroll-view scroll-y="true" class="left-box" scroll-with-animation="true"
        :scroll-into-view="tracingLeftPoint">
        <view class="scroll-view-item" v-for="(item,index) in servicesLeftList" :key="item.id"
                :id="'scroll' + item.id" :class="{'active':activeLeftTab==item.id}">
                {{item.name}}
        </view>
</scroll-view>
//方法
data(){
        retrun {
                tracingLeftPoint:"",//描点id
        }
}
        getData() {
        //接口
                getServicesTree().then(res => {
                        this.servicesLeftList= res.data
                        res.data.forEach((item, ind) => {
                                        setTimeout(()=>{
                                                this.tracingLeftPoint= 'scroll' + item.id
                                        },200)
                        })
                })
        }到此这篇关于uni-app 滚动到指定位置的文章就介绍到这了,更多相关uni-app 滚动到指定位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/javascript/321054kjm.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: uni-app 滚动到指定位置的操作方法