类似于这种:
以上截图来自于官网:vue-seamless-scroll
具体使用步骤为:
1:安装
cnpm install vue-seamless-scroll --save
2:引入
-
- import vueSeamlessScroll from 'vue-seamless-scroll' // vue2引入方式
- import scroll from "vue-seamless-scroll/src" // vue3引入方式
-
- components: {
- vueSeamlessScroll
- },
3:使用:
- <vue-seamless-scroll
- :data="listData"
- :class-option="classOption"
- class="warp"
- >
- <ul class="ul-item">
- <li class="li-item" v-for="(item, index) in listData" :key="index">
- {{ item }}
- li>
- ul>
- vue-seamless-scroll>
-
- <script>
- import vueSeamlessScroll from 'vue-seamless-scroll'
-
- export default {
- name: 'Example03Basic',
- components: {
- vueSeamlessScroll
- },
- data () {
- return {
- listData: [1, 2, 3, 4, 5, 6],
- classOption: {
- step: 0.5, // 数值越大速度滚动越快
- limitMoveNum: 2, // 开始无缝滚动的数据量
- hoverStop: true, // 是否开启鼠标悬停stop
- direction: 1, // 0向下 1向上 2向左 3向右
- openWatch: true, // 开启数据实时监控刷新dom
- singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
- singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
- waitTime: 1000, // 单步运动停止的时间(默认值1000ms)
- }
- }
- },
- }
- script>
-
- <style lang="scss" scoped>
- .warp {
- width: 130px * 4;
- height: 120px;
- margin: 0 auto;
- overflow: hidden;
- ul {
- list-style: none;
- padding: 0;
- margin: 0 auto;
- &.ul-item {
- display: flex;
- .li-item {
- width: 120px;
- height: 120px;
- margin-right: 10px;
- line-height: 120px;
- background-color: #999;
- color: #fff;
- text-align: center;
- font-size: 30px;
- }
- }
- }
- }
- style>
vue-seamless-scroll虽然能够实现数据的滚动,但是对于 limitMoveNum 只能获取到根数据节点数,也就意味着若是一个树结构数据,存在根节点就会滚动(不论数据是否超出了显示长度)。
解决方案:将树结构数据通过先序遍历一维化显示。