左右滑动逻辑很懵逼?

来源:7-22 播放器歌词左右滑动实现(上)

宝慕林9453083

2017-07-31

老师,这个const deltaX = touch.pageX - this.touch.startX,我的理解是向左滑动的时候deltaX 是 个负数 (left= 0),右划的话应该是是个正数(而且逐渐增大的,left=-window.innerWidth),所以到:const offsetWidth = Math.min(0, Math.max(-window.innerWidth, left + deltaX));this.$refs.lyricList.$el.style[transform] = `translate3d(${offsetWidth}px,0,0)` ;我就不理解了

写回答

1回答

ustbhuangyi

2017-08-01

这个 offsetWidth 是为了计算歌词列表的一个偏移量的,首先它的偏移量不能大于0,也不能小于 -window.innerWidth。left 是根据当前显示的是 cd 还是歌词列表初始化的位置,如果是 cd,那么 left 为 0 ,歌词是从右往左拖的,deltaX 是小于 0 的,所以最终它的偏移量就是 0+deltaX;如果已经显示歌词了,那么 left 为 -window.innerWidth,歌词是从左往右拖,deltaX 是大于 0 的,所以最终它的偏移量就是 -window.innerWidth + deltaX。

4
1
宝慕林9453083
非常感谢!
2017-08-01
共1条回复

Vue2.0高级应用教学实战,开发企业级移动端音乐Web App

Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。

5432 学习 · 3804 问题

查看课程