vue-seamless-scroll滚动列表动态追加数据

1.安装vue-seamless-scroll

npm install vue-seamless-scroll --save

2.例子(参考官网:https://chenxuan0000.github.io/vue-seamless-scroll/zh/guide/11-array-length-update.html

        <vue-seamless-scroll
          :data="datalist"
          :class-option="defaultOption"
          class="warp"
          ref="seamlessScroll"
        >
          <ul class="item">
            <li v-for="(item, index) in datalist" :key="index">
              <span>{{ item.id }}</span>
              <span>{{ item.name }}</span>
            </li>
          </ul>
        </vue-seamless-scroll>
Vue.use(VueResource);
export default {
  name: "HelloWorld",
  data() {
    return {
      datalist: [],
      mark:0,
    };
  },
    // 监听属性 类似于data概念,defaultOption和上面的:class-option对应
  computed: {
    defaultOption() {
      return {
        step: 0.5, // 数值越大速度滚动越快 
 //自己是定时器轮询后端接口,由于返回的数据是1s一更新,要小于后端更新频率,不然最下面的数据还没更新
        limitMoveNum: 7, // 开始无缝滚动的数据量 this.datalist.length
        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: 0, // 单步运动停止的时间(默认值1000ms)
      };
    },
  },

  methods: {
   getAllList() {
      this.$http
        .get(URL)
        .then((result) => {
            if (this.mark == 12) { //自己之所以设置成12,是因为上面设置开始滚动limitMoveNum是7,
            //两轮数据缓冲时间,这样可以确保获取到的数据充分更新
              this.mark = 0;
            }
            this.datalist[this.mark] = result.data.data;
            this.datalist.push();
            this.mark = this.mark + 1;
            // listData length无变化,仅仅是属性变更,手动调用下组件内部的reset方法
            this.$refs.seamlessScroll.reset();
        });
      }
.warp {
  overflow: hidden;/* 多出的隐藏*/
  height: 210px; /* 视觉滚动的高度*/
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现vue-seamless-scroll的单页滚动效果,你需要完成以下步骤: 1. 首先,安装vue-seamless-scroll插件。可以通过运行命令`npm install vue-seamless-scroll --save`或`yarn add vue-seamless-scroll`来进行安装。 2. 在你的项目中引入vue-seamless-scroll组件。可以使用`import vueSeamlessScroll from 'vue-seamless-scroll'`语句进行引入。 3. 注册vue-seamless-scroll组件。在你的Vue实例中的`components`属性中添加`vueSeamlessScroll`组件。 4. 准备好你要滚动数据。你可以将数据存储在一个数组中,然后在Vue实例的`data`属性中定义该数组。 5. 设置单页滚动的选项。在Vue实例的`data`属性中定义一个名为`classOption2`的对象,其中包含滚动的参数,如`step`、`hoverStop`、`direction`和`limitMoveNum`等。 6. 在Vue模板中使用vue-seamless-scroll组件。通过`<vue-seamless-scroll>`标签将你的数据和选项传递给该组件,并使用`v-for`指令循环渲染列表中的每一项数据。 下面是一个示例代码片段,展示了如何使用vue-seamless-scroll实现单页滚动效果: ```html <template> <div> <vue-seamless-scroll :data="listData2" class="seamless-warp" :class-option="classOption2"> <ul class="scrool-item scrool-item2"> <li class="item" v-for="(item, index) in listData2" :key="index"> {{ item }} </li> </ul> </vue-seamless-scroll> </div> </template> <script> import vueSeamlessScroll from 'vue-seamless-scroll'; export default { components: { vueSeamlessScroll, }, data() { return { listData2: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'], // 你的数据 classOption2: { step: 2.2, // 设置滚动速度 hoverStop: true, // 开启鼠标悬停停止滚动 direction: 1, // 设置滚动方向,0向下,1向上,2向左,3向右 limitMoveNum: 3, // 开启无缝滚动数据量(数值小于等于页面展示数据条数时不滚动) }, }; }, }; </script> ``` 通过上述步骤,你可以实现vue-seamless-scroll的单页滚动效果。记得根据你的实际需求修改数据和选项配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值