轮播的实现

题目1: 轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?(比如 play())

左右滚动无限循环轮播的实现

原理是将所有图片的水平排列,但是视口只有一张图片的宽度,超出范围的图片隐藏,切换图片的时候实际上是包含全部水平图片的大盒子在移动。

操作方式有

  1. 直接操作DOM,实现顺序切换
    当图片展示到最后一张时,直接将第一张移到最后一张图后面,或者就是当第一张图往前点的时候,把最后一张移到第一张图前面,以这样的方式循环播放

  2. 通过克隆
    在图片列表开头和结尾分别添加最后一张图和第一张图。图片的切换,就是改变绝对定位元素的left值。
    当我们展示到最后一张图往后点或者第一张图往前点的时候,会先展示我们之前克隆好的图,同时把元素回归到正确的位置。即真正的第一张或者最后一张的位置,通过pageIndex = 0 和$imgCt.css({left: -imgWidth})

轮播的实现_第1张图片
Paste_Image.png
左右渐变轮播

渐变轮播的元素不采用水平排列
利用fadeOut,fadeIn控制当前的元素隐藏,下一个元素显示
重点是对应的索引值的变化

可以用来抽象的接口函数

  1. nextPlay()
  2. prePlay()
  3. play()
  4. setBullet()

题目2: 实现视频中的左右滚动无限循环轮播效果

左右滚动轮播

题目3: 实现一个渐变轮播

渐变轮播

你可能感兴趣的