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对象的property和prototype是这样一种关系
Mar 24 Javascript
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
jQuery插件开发的五种形态小结
Mar 04 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
May 28 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
Nov 02 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
详解React中setState回调函数
Jun 14 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 Javascript
javascript实现滚轮轮播图片
Dec 13 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 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
深入php内核之php in array
2015/11/10 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
python实现双人五子棋(终端版)
2020/12/30 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
总经理职责
2013/12/22 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
夏洛特的网观后感
2015/06/15 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang