uniapp scroll-view scroll-into-view 采坑记

scroll-into-view 无法滚动到指定位置

根据官方文档介绍 scroll-into-view 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素

<template>
    <view>
        <scroll-view 
            scroll-x="true" 
            scroll-with-animation="true" 
            :scroll-into-view="toView">
            <view style="display: flex;">
                <view 
                    :id="item.id" 
                    class="item" 
                    v-for="(item, index) in list" 
                    :key="index"
                    @click="handleClick(item)">
                    {{ item.title }}
                </view>
            </view>
        </scroll-view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                list: [],
                toView: ''
            }
        },
        onLoad() {
            for (let i = 1; i <= 20; i++) {
                this.list.push({
                    title: 'v'+i,
                    id: 'V'+i
                })
            }
        },
        methods: {
            handleClick(item) {
                this.toView = item.id
            }
        }
    }
</script>

<style>
    .item {
        margin-left: 10upx;
        margin-right: 10upx;
        width: 100upx;
        height: 100upx;
    }
</style>

有几个关键点要配置缺一不可
1、配置每个滚动子元素的 id
2、动态配置 scroll-into-view 的值,scroll-into-view 的值需与任一滚动子元素的 id 保持一致
3、如果 scroll-y="true" 还需要在 css 配置 scroll-viewheight属性

看不明白的话,请看上方代码

博主大大

假如生活欺骗了你,不要悲伤,不要心急,反正明天也一样~

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

猜你喜欢