vue中使用better-scroll实现滑动效果及注意事项


Posted in Javascript onNovember 15, 2018

一、首先需要在项目中引入better-scroll

1. 在package.json 直接写入 "better-scroll":"^1.11.1"  版本以github上为准(目前最新)

2.cpnm install  在node_modules  可以查看版本是否安装

3.直接在你的组件里面写入import BScroll from 'better-scroll';

二、better-scroll优点

1.体验像原生:滚动非常流畅,而且没有滚动条。

2.滚动位置固定:在vue中通过路由切换页面时组件会自动滚动到顶部,需要监听滚动行为才能让滚动位置固定,better-scroll解决了这个问题。

三、下面是在项目中的使用

先给大家介绍最终要实现的效果

        就是移动端很常见的效果,当滑动右边部分的时候,左边会联动显示与当前内容相符合的标题高亮,当点击左边某一个标题的时候,右边会自动滑动到相应的内容。

vue中使用better-scroll实现滑动效果及注意事项

实现及说明

1.滚动效果

better-scroll在使用的时候需要在dom元素渲染完成之后初始化better-scroll的实例,初始化的时候,先要获取需要滑动的元素,然后在初始化的时候将获取到的元素传递给初始化函数,此时便可实现滑动效果

2.左右联动效果

左右联动效果的实现,是better-scroll通过监听事件实现的。

首先获取到右边内容盒子的高度,然后获取到该盒子中每一项的高度并做前n项高度累加(第n项的高度是前n项的高度和)存储到listHeight数组中。在初始化的时候传递属性probeType=3 (探针的效果,时时获取滚动高度),并给右边的内容盒子对象监听scroll事件,从而时时获取Y轴位置,来与listHeight数组中的数据做比较,时时计算当前的索引值,并给对边对应索引值的项添加背景色高亮,从而实现右边滑动,联动左边。

当点击左边的每一项的时候,获取到当前的索引值,并根据当前的索引值获取到与右边内容盒子中对应索引的元素,右边的盒子元素通过监听scrollToElement,并传递获取到的对应索引元素和动画时间,从而实现点击左边,实现右边联动;

实现代码如下:

html结构

vue中使用better-scroll实现滑动效果及注意事项

demo中用到的数据结构

vue中使用better-scroll实现滑动效果及注意事项

demo中用到的方法

vue中使用better-scroll实现滑动效果及注意事项

方法的调用

vue中使用better-scroll实现滑动效果及注意事项

属性计算

vue中使用better-scroll实现滑动效果及注意事项

样式不做过多介绍

需要注意的是,该页面的这一部分给了固定的高度,且超出部分overflow:hidden;

vue中使用better-scroll实现滑动效果及注意事项

3.better-scroll实现水平滑动效果

项目中经常会遇到需要水平滑动的需求,现在就用better-scroll来实现它

better-scroll的使用方式跟上边的说明是一样,只是配置项发生了变化,下面将代码贴出来,就明了了。

template部分

vue中使用better-scroll实现滑动效果及注意事项

js部分

vue中使用better-scroll实现滑动效果及注意事项

css部分

vue中使用better-scroll实现滑动效果及注意事项

注意事项:

1.tab_content是内容的盒子,他的长度就是内容的宽度;

2.由于内容的盒子是需要滑动的,所以在内容盒子的外边还需要在加一层盒子,宽度为100%。

better-scroll插件git地址https://github.com/ustbhuangyi/better-scroll

总结

以上所述是小编给大家介绍的vue中使用better-scroll实现滑动效果及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS URL传中文参数引发的乱码问题
Sep 02 Javascript
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
jQuery动态星级评分效果实现方法
Aug 06 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
js实现仿微博滚动显示信息的效果
Dec 21 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
May 25 Javascript
JS模拟的Map类实现方法
Jun 17 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
详解小程序缓存插件(mrc)
Aug 17 Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 Javascript
Vue使用Ref跨层级获取组件的步骤
Jan 25 Vue.js
layDate日期控件使用方法详解
Nov 15 #Javascript
vue2中引用及使用 better-scroll的方法详解
Nov 15 #Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 #Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 #Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 #Javascript
vue 移动端适配方案详解
Nov 15 #Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
Nov 15 #Javascript
You might like
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
Python中的高级函数map/reduce使用实例
2015/04/13 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python中正则表达式的详细教程
2015/04/30 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python中模块查找的原理与方法详解
2017/08/11 Python
python逆向入门教程
2018/01/15 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
Jupyter加载文件的实现方法
2020/04/14 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
超市营业员岗位职责
2013/12/20 职场文书
户籍证明的格式
2014/01/13 职场文书
境外导游求职信
2014/02/27 职场文书
师德师风个人反思
2014/04/28 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2016中秋节广告语
2016/01/28 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python