vue2.0——项目开发_better-scroll 实现移动端滑动
来源:互联网 发布:python自然语言处理包 编辑:程序博客网 时间:2024/05/22 11:54
better-scroll + vue2.0 实现移动端滑动——左右联动
效果:滑动右侧时,左侧也能有相应的变化;点击左侧时,右侧也能自动定位到相应的位置。
如下图所示界面,左侧为分栏,右侧为分栏详情。
滑动右边使左边联动的大概的思路:
1)要知道右侧的列表中,每一个分栏所占的高度,存进一个数组中。
2)实现左边联动,则必须要监控 “scroll”事件,获取其高度
3)将scroll 的高度与右侧分栏的高度进行比较,获得其 index 值
4)左侧的分类中,使与 index 相应的分栏高亮即可~
余留的问题:额,左侧怎么跟着一起滚动?应该还需要判断一下当前左侧栏中的scroll的位置,然后使之跟随变化,但是不同尺寸的手机,高度不一,怎么解决???我不知道……哈哈哈
点击左边时,右边实现自动定位的大概思路:
1)首先要使点击有效,因为 better-scroll将默认事件都阻止了
2)为左侧的分栏绑定点击事件,并获取 index ,然后使右边的相应 index 分类滚动就行了~so easy ….but!!!
怎么下手?!!
1. 先实现滑动右边触发左边的功能:
做法:
(1)定义变量先~ 在data中加入一个 listHight: [] 数组;一个变量scrollY : 0,用来装目前的scroll的y位置坐标
(2)在methods 中定义一个函数计算高度,此处还要用到一个知识点(如何获取 分类列表dom元素?)使用 this.$refs
使用 ref 为子组件指定一个索引 ID,我们先给要获取高度的那个元素取个索引 ID名,名字叫:“goodList”:
let goodList = this.$refs.goodList 这样就获取了所有分类列表啦,计算方法定义如下:
_calculateHeight() { let goodList = this.$refs.goodList let height = 0 this.listHeight.push(height) for (let i = 0; i < goodList.length; i++) { let item = goodList[i] height += item.clientHeight this.listHeight.push(height) } }
(3)然后在计算属性computed 中,来比较数组中的高度值与当前的 scroll 的y坐标值,返回的是当前所在高度的index值:
在执行这一步时,scrollY的值,要怎么得到?(通过better-scroll 检测“scroll”事件得到,此时,需要给其加上相应的参数,做法如截图中画红线处所示)
currentIndex () { for (let i = 0; i < this.listHight.length; i++) { let height1 = this.listHight[i] let height2 = this.listHight[i + 1] if (!height2 || (this.scrollY >= height1 && this.scrollY < height2)) { return i } } return 0 } }
(4)在 template 中,将此index 值绑定到index 值相等的左侧的列表分栏中,并指定一个类名,叫 current,如下图中的 画红线的部分:
(5)在style中,将相应的current 类加上相应的样式即可:
2. 再来实现点击左边,右边联动的效果
(1)使 左边栏 点击有效,如下图红线标注所示:
(2)为左侧栏 添加相应的点击事件:
(3)在methods 中编写点击触发的事件 selectMenu()方法,利用 获取的 $index 使右边进行相应的滚动,其中 300ms是加上了一个过渡效果:
试试吧~
本人有vue.js 高仿饿了么,Vue 2.0 高级实战-开发移动端音乐WebApp等视频,源码,老师笔记,若有不懂有请教老师的方式等。有意者,请私信我。
试看地址:
vue.js 高仿饿了么
链接: https://pan.baidu.com/s/1cD5Jw6 密码: vw5yVue 2.0 高级实战-开发移动端音乐WebApp
链接: https://pan.baidu.com/s/1bzIqWe 密码: v461
例如这些,慕课网的
vue.js
- Vue 2.0 高级实战-开发移动端音乐WebApp,教程视频,源码
- vue.js 高仿饿了么,教程视频,源码。
- vue2.0基础教程视频,源码
- 爱创课堂web前端培训张容铭vue2.0高级前端视频教程。
React教程视频,源码
- 1.React高级实战大众点评
- 2.React.js大众点评
Angular教程视频,源码
- Angular 4.0从入门到实战 打造在线竞拍网站
- 双剑合璧Laravel,AngularJS全栈开发知乎
NodeJs教程视频,源码
- 基础班NodeJs视频
- 就业班NodeJs视频
- 7天搞定Node.js微信公众号开发
视频清晰度
- vue2.0——项目开发_better-scroll 实现移动端滑动
- 基于vue2.0以及better-scroll实现scroll滑动组件及所实现组件的应用例子
- Vue2.0项目开发流程—通俗易懂
- vue2.0移动端滑动事件vue-touch
- Vue2 移动端开发记录
- Scroll实现上下左右滑动
- vue项目开发中better-scroll在移动端开发案例
- Vue2 移动端开发环境搭建
- Vue2 移动端开发环境搭建
- Vue2 移动端开发环境搭建
- android---Scroll实现滑动效果
- VUWE——又一个移动端Vue2组件库
- VUWE——又一个移动端Vue2组件库
- Android Scroll分析(二)——实现滑动的五种方法
- h5移动开发,ionic实现滑动切换
- unity 开发实现滑动移动固定距离
- vue中实现移动端的scroll滚动
- 基于Vue2的移动端开发环境搭建详解
- 在jsp页面中格式化时间
- 子窗口调用父窗口方法
- CSDN会用用我的账号搞事情?
- OkHttp3实现Cookies持续化管理
- java的简单例子之用户登录及其选择
- vue2.0——项目开发_better-scroll 实现移动端滑动
- python---列表
- severlet技术概念 基础
- 从Servlet到jsp的传值问题
- 使用Javascript 实现 分享到 新浪微博 QQ 空间等
- 微信小程序dom操作的替代思路
- C/C++:string.c_str()
- $("#loginname").tips和jQuery中 的ajax
- hdu 3535 混合背包