vue 数据可视化大屏 项目中要求列表可以自动滚动,当前使用的是vue2实现的效果,如果要使用vue3的话,可以通过vue3 使用vue3-seamless-scroll实现列表无缝滚动插件实现.
安装依赖
# vue3
# yarn
yarn add @meruem117/vue-seamless-scroll@latest --dev
# npm
npm i @meruem117/vue-seamless-scroll@latest --save-dev
# vue2
# yarn
yarn add @meruem117/vue-seamless-scroll@latest-v2 --dev
# npm
npm i @meruem117/vue-seamless-scroll@latest-v2 --save-dev
main.js
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
import VueSeamlessScroll from '@meruem117/vue-seamless-scroll'
Vue.use(VueSeamlessScroll)
new Vue({
render: h => h(App),
}).$mount('#app')
App.vue
<template>
<div id="app">
<div class="box">
<vue-seamless-scroll class="list" :data="data" direction="top" :steep="0.5" roller :distance="20">
<div class="list-item" v-for="item, index in data" :key="index">{{ item.text }}</div>
</vue-seamless-scroll>
</div>
</div>
</template>
<script>
export default {
name: 'App',
data() {
return {
data: [
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
{ text: 'test' },
]
}
},
}
</script>
<style scoped>
.box {
width: 100%;
height: 200px;
padding-top: 50px;
display: flex;
justify-content: center;
}
.list {
height: 300px;
overflow: hidden;
}
.list-item {
width: 500px;
height: 100px;
margin-bottom: 20px;
color: #000;
font-size: 14px;
background-color: aliceblue;
}
</style>
Api
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
direction | 滚动的方向 | 'top' | 'bottom' |
steep | 滚动的速率 | number | 0.5 |
roller | 是否可以使用滚轮滚动 | boolean | true |
distance | 滚轮滚动的速率 | number | 20 |
data | 接收异步数据,同步任务可不传 | array | - |
Tips
如没有显示请为嵌入的标签设置字体大小
当 direction 为 top 或 bottom 时,要为组件设置高度;当 direction 为 left 或 right 时,要为组件设置宽度