better-scroll插件的实战

Posted rmty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了better-scroll插件的实战相关的知识,希望对你有一定的参考价值。

better-scroll 是一款重点解决移动端各种滚动场景需求的插件,并且可以很好的和 Vue 配合使用

首先来总结一下当下项目需要通过这个插件解决的需求:

技术图片

 

1.左边商品种类列表可以滚动,右侧当前种类的商品详情也可以滚动

2.右侧上下滚动的时候左侧对应的种类也会高亮

3.点击左侧的种类的时候右侧会快速滑动至对应的商品

首先安装better-scroll

技术图片

 

在项目中引入

 技术图片

 

 实例化bscroll的方法如下:

技术图片

 

 在这个构造函数中第一个传通过类名获取的DOM对象,第二个则是传递一个配置参数对象,因此在VUE中我们需要获取到DOM对象

技术图片

 

 技术图片

 

 在vue的methods中实例化

技术图片

 

 右侧的商品列表部分我们不光要实例化这个滚动组件,还需要监听他的滚动回调

在data中储存一个scrollY变量方便全局使用,同样实例化的这个foodscroll对象也需要存放到data中

技术图片

 

实例化foodscroll对象并赋值给data中的foodScroll

 技术图片

 

 在获取到数据的时候并且当DOM已经完全渲染时调用这个两个方法实例化滚动

技术图片

 

 到这里第一步也完成了,测试一下效果,可以打印出右侧滚动的Y距

技术图片

 

 接下来还需知道右侧每个商品种类的高度,以及总的高度

技术图片

 

同样在data中定义这个数组

技术图片

 

 把每一项的高度都推送到数组中存储起来

 技术图片

 

接下来就可以利用这个数组和之前获取到scrolly来获取当前的索引,使用计算属性方法,通过对比两个商品类目之间的距离是否在滚动范围内来返回不同的索引值

技术图片

 

 绑定这个class

技术图片

 

 到此第二步也完成了,现在右边滑动的时候左边也会在相应的区块添加当前样式

技术图片

 

 最后一步点击左侧区块右边跳转:

很简单,在左侧每个列表中添加一个点击事件,把当前索引传递进去

技术图片

 

在这个方法中获取到右侧的列表,再调用这个插件对应的接口即可

 技术图片

 

 

 

 

 

 

以上是关于better-scroll插件的实战的主要内容,如果未能解决你的问题,请参考以下文章

VUE 滚动插件(better-scroll)

better-scroll插件 api

Vue中的better-scroll插件

vue实现刷新的第三方插件,better-scroll

better-scroll插件

better-scroll插件中导致fixed定位失效处理方便