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 相关文章推荐
JavaScript iframe的相互操作浅析
Oct 14 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
Mar 07 Javascript
js实现仿qq消息的弹出窗效果
Jan 06 Javascript
jQuery与Ajax以及序列化
Feb 01 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
Mar 21 Javascript
js实现每日签到功能
Nov 29 Javascript
JS中如何轻松遍历对象属性的方式总结
Aug 06 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
JS求解两数之和算法详解
Apr 28 Javascript
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 HandlerSocket的使用
2011/05/02 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
详细讲解Python中的文件I/O操作
2015/05/24 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
如何基于python实现归一化处理
2020/01/20 Python
pandas的resample重采样的使用
2020/04/24 Python
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
中餐厅主管的职责范文
2014/02/04 职场文书
数学国培研修感言
2014/02/13 职场文书
双拥工作宣传标语
2014/06/26 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
小学运动会前导词
2015/07/20 职场文书
导游词之太原天龙山
2020/01/02 职场文书