vue中使用better-scroll的一些注意点
一,安装
npm install better-scroll
二,引入
在需要使用better-scroll的组件中引入(js中)
import BScroll from 'better-scroll'
三,使用
<1> 如果不是动态生成的标签,直接在在vue中实例化better-scroll
let wrapper = this.$refs.wrapper
this.scroll = new BScroll(wrapper)
<2>动态生成的标签,在methods中定义初始化方法,然后在created函数中当中等待dom加载完成之后,调用方法
created () {
this.$nextTick(() => {
this.initScroll()
})
},
methods:{
initScroll(){
let product= this.$refs.product //给滚动区域的父元素加ref属性,绑定节点
this.product= new BScroll(product, {click: true}) //better-scroll 默认会阻止原生click事件,需要配置一下
}
}
四,注意事项
*如果是动态生成的标签,需要在dom加载完成之后再操作dom,现在methods之中定义方法,然后在created里的this.$nextTick()
中去调用这个方法,如果不使用this.$nextTick()
,可能会出现如下报错
bscroll.esm.js?1906:994 [BScroll warn]: Can not resolve the wrapper DOM. vue.esm.js?efeb:628 [Vue warn]: Error in created hook: "TypeError: Cannot read property 'children' of undefined"
*better-scroll的滚动区域要比其父元素的高度高,才能滚动
*滚动区域的父元素只对其下的第一个子元素产生作用,其余自动忽略