Skip to content
On this page

滚动控制

示例

  • 汉皇重色思倾国,御宇多年求不得。(唐)白乐天
  • 杨家有女初长成,养在深闺人未识。(唐)白乐天
  • 天生丽质难自弃,一朝选在君王侧。(唐)白乐天
  • 回眸一笑百媚生,六宫粉黛无颜色。(唐)白乐天
  • 春寒赐浴华清池,温泉水滑洗凝脂。(唐)白乐天
  • 侍儿扶起娇无力,始是新承恩泽时。(唐)白乐天
  • 云鬓花颜金步摇,芙蓉帐暖度春宵。(唐)白乐天
  • 春宵苦短日高起,从此君王不早朝。(唐)白乐天
  • 承欢侍宴无闲暇,春从春游夜专夜。(唐)白乐天
  • 后宫佳丽三千人,三千宠爱在一身。(唐)白乐天
  • 汉皇重色思倾国,御宇多年求不得。(唐)白乐天
  • 杨家有女初长成,养在深闺人未识。(唐)白乐天
  • 天生丽质难自弃,一朝选在君王侧。(唐)白乐天
  • 回眸一笑百媚生,六宫粉黛无颜色。(唐)白乐天
  • 春寒赐浴华清池,温泉水滑洗凝脂。(唐)白乐天
  • 侍儿扶起娇无力,始是新承恩泽时。(唐)白乐天
  • 云鬓花颜金步摇,芙蓉帐暖度春宵。(唐)白乐天
  • 春宵苦短日高起,从此君王不早朝。(唐)白乐天
  • 承欢侍宴无闲暇,春从春游夜专夜。(唐)白乐天
  • 后宫佳丽三千人,三千宠爱在一身。(唐)白乐天
速度控制:1
状态控制:
vue
<script setup>
import vueScrollComponents from "vue-scroll-components";
import { ref } from 'vue'
const data = ref([
    {
        'title': '汉皇重色思倾国,御宇多年求不得。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '杨家有女初长成,养在深闺人未识。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '天生丽质难自弃,一朝选在君王侧。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '回眸一笑百媚生,六宫粉黛无颜色。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '春寒赐浴华清池,温泉水滑洗凝脂。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '侍儿扶起娇无力,始是新承恩泽时。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '云鬓花颜金步摇,芙蓉帐暖度春宵。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '春宵苦短日高起,从此君王不早朝。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '承欢侍宴无闲暇,春从春游夜专夜。',
        'auth': '(唐)白乐天'
    },
    {
        'title': '后宫佳丽三千人,三千宠爱在一身。',
        'auth': '(唐)白乐天'
    },
])
const speed = ref(1) // 速度
const scroll = ref(true) // 状态
const handle = (e) => {
    speed.value = parseFloat(e.target.value)
}
</script>

<template>
    <vueScrollComponents v-model:speed="speed" v-model:scroll="scroll" :data="data" class="wrap">
        <ul class="item">
            <li v-for="(item, index) in data" :key="index">
                <span class="title" v-text="item.title"></span>
                <span class="auth" v-text="item.auth"></span>
            </li>
        </ul>
    </vueScrollComponents>
    <div class="btn-wrap">
        <span>速度控制:</span>
        <input type="range" name="cowbell" min="0" max="5" value="1" step="0.1" @input="handle" />
        <span>{{ speed }}</span>
    </div>
    <div class="btn-wrap">
        <span>状态控制:</span>
        <button type="submit" @click="() => scroll = !scroll">{{ scroll ? '点击暂停' : '点击滚动' }}</button>
    </div>
</template>

<style scoped lang="scss">
.wrap {
    height: 256px;
    width: 360px;
    margin: 0 auto;
    overflow: hidden;

    ul {
        list-style: none;
        padding: 0;
        margin: 0 auto;

        li {
            margin: 0;
            height: 32px;
            line-height: 32px;
            display: flex;
            justify-content: space-between;
        }
    }
}

.btn-wrap {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
}
</style>

欢迎给出一些意见和优化,期待你的 Pull Request.