vueSeamlessScroll踩坑之路

vue-seamless-scroll踩坑分享

自己在项目中遇到列表内容无缝滚动的需求,在百度后发现很多使用vue-seamless-scroll组件去实现,因此也就开始了我的踩坑之路

安装

npm install vue-seamless-scroll --save

配置

import scroll from 'vue-seamless-scroll'
Vue.use(scroll)

调用组件

页面演示地址:

https://chenxuan1993.gitee.io/component-document/index_prod#/component/seamless-default
<template>
    <vue-seamless-scroll :data="listData" :class-option="optionSingleHeightTime" class="seamless-warp">
        <ul class="item">
            <li v-for="item in listData">
                <span class="title" v-text="item.title"></span><span class="date" v-text="item.date"></span>
            </li>
        </ul>
    </vue-seamless-scroll>
</template>
<style lang="scss" scoped>
    .seamless-warp {
        height: 229px;
        overflow: hidden;
    }
</style>
<script>
    export default {
        data () {
            return {
                listData: [{
                   'title': '无缝滚动第一行无缝滚动第一行',
                   'date': '2017-12-16'
                 }, {
                    'title': '无缝滚动第二行无缝滚动第二行',
                    'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第三行无缝滚动第三行',
                     'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第四行无缝滚动第四行',
                     'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第五行无缝滚动第五行',
                     'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第六行无缝滚动第六行',
                     'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第七行无缝滚动第七行',
                     'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第八行无缝滚动第八行',
                     'date': '2017-12-16'
                 }, {
                     'title': '无缝滚动第九行无缝滚动第九行',
                     'date': '2017-12-16'
                 }]
                }
            },
            computed: {
                optionSingleHeightTime () {
                    return {
    
        step: 0.2, // 数值越大速度滚动越快
        limitMoveNum: 2, // 开始无缝滚动的数据量 this.dataList.length
        hoverStop: true, // 是否开启鼠标悬停stop
        direction: 0, // 0向下 1向上 2向左 3向右
        openWatch: true, // 开启数据实时监控刷新dom
        singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
        singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
        waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
                        }
                }
             }
       }
</script>         }
             }
       }
</script>

!!!以上就是第一个,官网页面展示数据是写死的,所以我们看到先到页面效果没有问题,但是我们正常项目数据都是从后台请求过来的,通过父传子数据接收,在这里我遇到页面初次渲染,列表不自动滚动以及数据只滚动一次

解决方案如下
watch:{
        'dataList':function(val){
            this.listData=val
        }
    },
    mounted(){
        this.arr.forEach((val,index)=>{
            let text={
                date:val.date,
                title:val.title,
                content:val.content
            }
             this.listData.push(text)
        })
    }

解决思路主要通过watch实时监听数据,然后vueSeamlessScroll组件初始数据需要在mouted生命周期通过数组遍历在push 进去

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值