vue使用Better-Scroll实现纵向滚动

本文介绍了如何在Vue项目中利用Better-Scroll库创建一个用于纵向滚动的插件。通过封装代码,可以方便地在多个组件中复用,详细代码已在文中给出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将纵向滚动抽象为一个插件,多次调用具体参看见横向滚动中描述。首先贴出全部代码:

<template>
//better-scroll作用于子元素,所以要有一层wrapper封装
<div ref="wrapper">
  <slot>
  //slot插槽中即为具体滚动的内容,来自调用此插件的组件
  </slot>
</div>
</template>

<script>
import BScroll from 'better-scroll'
export default {
//props中所涉及属性的作用自行查看better-scroll文档
  props: {
    probeType: {
      type: Number,
      default: 1
    },
    click: {
      type: Boolean,
      default: true
    },
    data: {
      type: Array,
      default: null
    }
  },
  mounted() {
    setTimeout(() => {
      this._initScroll()
    }, 20)
  },
  methods: {
  //初始化滚动组件
    _initScroll() {
      if (!this.$refs.wrapper) {
        return
      }
      this.scroll = new BScroll(this.$refs.wrapper, {
        probeType: this.robeType,
        click: this.click,
      })
    },
    //所使用到的函数作用自行查看文档 
    enable() {
      this.scroll && this.scroll.enable()
    },
    disable() {

      this.scroll && this.scroll.disable()
    },
    refresh() {
      this.scroll && this.scroll.refresh()
    }
  },
  watch: {
  //观察传入的数据,一旦数据发生变化,重新渲染滚动组件
    data() {
      setTimeout(() => {
        // this.scroll.refresh()
        this.refresh()
      }, 20);
    }
  }
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值