一、思路
1、所有滑动效果的demo都是通过控制css里的left值,来控制滑动效果的。
2、需要两个块,一个div块,一个ui。div块的position是relative,ui块的position是absolute。这样ui块的left就可以根据外层的div来控制。div的overflow是hidden,因为ui里面的li的float是left的,ui的宽度必定比div宽,但是要保证只显示一张图,所以超出div的部分隐藏掉。
3、两个按钮,这两个按钮,无非就是控制UI的left值变化,以每一张图的宽度为限,进行加或减的运算。
4、所谓无限轮播,只是在不停点击按钮的时候,图片会一直向左,或者向右转动,而不是像某些轮转图,当到达零界点时,发生跳转。这个时候,我们就要复制第一张图,把第一张插入整个ui的最后,把最后一张图,复制插入整个ui的首位。当点击到我们复制的图片时,就直接定位到,最后一张图,或者第一张图。这种快速的定位,不会有任何间隙的产生。
5、自动播放,也就是当页面载入的时候,设定一个定时器,让这个定时器,调用自身。定时器的fn无法就是点击按钮,让图片自己转动起来。
6、当鼠标移入时,停止定时器,当鼠标移出的时候,启动定时器。
7、当点击按钮的时候,判断当前是否处于动画状态,处于动画状态,就移除对left的控制,不处于动画状态,就执行对left的控制,这个主要是考虑到,当用户不停地点击按钮时,图片会不停的轮转,点击了多少次,就执行多少次点击函数。这是一种不好的用户体验。
二、代码
具体效果代码。可以点击上面的url,查看推敲,我是用avalon和jquery结合做的。