轮播的实现

2017-07-05  本文已影响111人  放风筝的小小马

轮播的实现原理?

以四个图片的轮播为例
html部分:图片存放在ul li标签内,并使用一个div包裹ul
css部分: div设置relative,宽度为单个图片的宽度,并设置overflow: hidden;ul设置absolute定位,宽度在js中设置(因为还需要clone首尾的图片,所以不在CSS中设置宽度),li全部左浮动
js部分

  1. 获取ul节点、获取实际图片的数量imgNum、获取单个图片的宽度imgWidth,定义一个索引curIndex记录当前显示的图片索引
  2. clone第一张图片并添加在图片列表的最后,clone最后一张图片并添加到图片列表的最前面,注意:此时显示的是最后一张图片的内容,需将ul向左移动一个图片宽度的距离
  3. 获取图片列表的宽度(并将其设置为ul的宽度(4+2张图片)),
  4. 定义以下接口:playNext(len)、playPre(len)
  5. playNext(): 执行该函数时使用动画将ul向左偏移一个图片(假设len=1)的宽度,动画结束后,将curIndex加1,同时判断curIndex是否为最后一个图片(此时显示的其实是第一个图片),如果是的,则将ul定位到真正的第一个图片的位置(使用css方法的left进行设置)
  6. playPre(): 该函数与playNext移动的方向相反,执行该函数时,使用动画将ul向右偏移一个图片的宽度,动画结束后,将curIndex减1,同时判断curIndex是否为第一个图片(此时显示的其实是最后一个图片),如果是的,则将ul定位到真正的最后一个图片的位置

轮播的实现需要注意几点:

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

代码演示

实现一个渐变轮播效果

原理:

滚动轮播和渐变轮播代码

使用CSS 实现

在上面的实现代码中,使用的是绝对定位,调整left的值来进行轮播;另一种方法是使用css3的transform: translateX()来移动图片,通过transition: transform来添加动画效果

上一篇下一篇

猜你喜欢

热点阅读