js实现效果:循环轮播图

JavaScript013

js实现效果:循环轮播图,第1张

跟普通的左右切换轮播图类似,但是它看起来是首尾相连的。

首先来讲一下我的思路:

我们要想无缝切换图片,必须要在所有图片的最后添加一张第一张图片,因为要实现从最后一张切换到第一张时有过渡效果;

之后我们要让你处在第一张时,向前向后切换都要进行 隐式切换

我们也可以将所有的轮播图的图片外面套一层div,并设置绝对定位,然后使用 父相子绝 ,来让图片可以相对父元素定位(父元素就是装轮播图的盒子)

之后,只要我们让不该显示的图片定位到盒子范围外的位置(父元素设置overflow:hidden),在需要切换图片时,我们就把当前图片前后的图片定位到对应位置,然后通过setInterval方法循环改变其位置实现轮播效果。之后更改当前图片的索引即可。

你好,这种效果我自己写过,我说下自己的方法

做一个div,宽高固定,overflow设为hidden

在该div中放一个ul,该ul种横向排布若干li,每个li装入一个图片,大小为外层div的宽和高

ul的宽度要设为所有li横向排布的总和,否则,图片会换行

然后,在js写一个定时器,setInterval,不停地修改ul的margin-left,宽度为一个图片宽

然后效果就是滑动的向左边切换一个图片

没切换完一张图片后,将ul的第一个li copy到ul的最后一位去,并删掉ul的第一个li,这时第一个li已经切换到外层div的左边,已经看不到了,所以我们做操作,用户不会发觉

然后修改ul的margin-left为0

这样就是无缝首尾切换了

可以参考下面的daima :

//3个div的统一class = 'div'

var index =0

//3秒轮播一次

var timer = setInterval(function(){

index = (index == 2) ? 0 : index + 1       

//某个div显示,其他的隐藏

$(".div").hide().eq(index).show() 

}, 3000)

扩展资料:

javaScript参考函数

getUTCFullYear() 根据邦际时间来失掉完全的年份

getUTCMonth() 依据国际时间来得到月份(0-11)

getUTCDate() 依据国际时间来失掉日(1-31)

getUTCHours() 依据国际时间来失掉小时(0-23)

getUTCMinutes() 根据邦际光阴来往归分钟(0-59)

getUTCMilliseconds()依据国际时间来返回毫秒(0-999)

参考资料来源:百度百科-javascript

参考资料来源:百度百科-jQuery