左右滑动逻辑很懵逼?
来源: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回答
-
这个 offsetWidth 是为了计算歌词列表的一个偏移量的,首先它的偏移量不能大于0,也不能小于 -window.innerWidth。left 是根据当前显示的是 cd 还是歌词列表初始化的位置,如果是 cd,那么 left 为 0 ,歌词是从右往左拖的,deltaX 是小于 0 的,所以最终它的偏移量就是 0+deltaX;如果已经显示歌词了,那么 left 为 -window.innerWidth,歌词是从左往右拖,deltaX 是大于 0 的,所以最终它的偏移量就是 -window.innerWidth + deltaX。
412017-08-01
相似问题