1轮播图实现的原理就是利用js中定时器,根据时间来改变盒子的位置实现动画,但是为了美观以及合理化,我们需要对其添加一些功能
1:首先是缓动动画,如果直接平移或者在点击瞬间改变位置会很不美观,所以我们需要制定一个缓动动画的函数,使用函数会让代码变得简洁方便
function animate(obj,target){
clearInterval(obj.timer);//先把上一个定时器清除
obj.timer=setInterval(function(){
//缓动动画原理 将移动距离改成根据目标的位置减去现在的位置然后除以十
var space=(target-obj.offsetLeft)/10;
//避免小数,应该取整
if(obj.offsetLeft==target){
clearInterval(obj.timer);//停止动画,将定时器timer删除了
}
space=space >0 ? Math.ceil(space):Math.floor(space);
obj.style.left=obj.offsetLeft+space+'px';//利用offsetleft获取盒子距离左侧的位置
},15);
}
2:我们需要自动化一些,防止后期维护太花费精力,所以可以根据轮播图的照片数量自动添加下面的小圆圈,并且在添加时可以给其赋上我们的自定义变量,方便后续使用
for(var i=0;i<ul.children.length;i++){