学习了妙味课堂的图片切换(动画版)
这个小效果相对简单一点。
知识预备:
【1】background-position-x
background-position属性设置背景原图像(由 background-image 定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。
background-position有两个属性值, background-position:x | y,用法上可以对其一个属性单独使用 background-position-x 和 background-position-y。
准备工作完毕,开始写代码
第一步
由于这次需要的div很多,所以采用动态添加的方式,直接看代码
body{
margin: 0;
background-color: #5e5e5e;
}
#Box{
width: 857px;
height: 574px;
padding-top: 126px;
padding-left:143px;
background: url(img/bg.png) no-repeat;
margin: 0px auto;
}
#wrap{
width: 700px;
height: 420px;
transform-style: preserve-3d;
perspective: 800px;
}
#wrap div{
width: 10px;
height: 420px;
background: url(img/01.png) no-repeat;
float: left;
transition: .5s;
}
Box">
第二步
写tab()函数,设置每个div要做的动画
tab()函数
图片
function tab(n){
// 0
if(divs[n-1]){
divs[n-1].style.opacity = 1;
}
// 70
if(divs[n]){
divs[n].style.opacity = 0;
divs[n].style.backgroundImage = "url(img/0"+imgNum+".png)";
}
}
第三步
写go()函数,利用定时器改变tab()函数的参数并且适时的改变背景图片
go()
函数传递n值
function go(){
timer = setInterval(function(){
tab(num);
num++;
//一张图片切换完毕
if(num == 71){
clearInterval(timer);
//切换下一张图片
imgNum++;
//num清0,动画效果从第一个div开始
num = 0;
//当切到最后一张图片时,在从第一张开始切换
if(imgNum == 6){
imgNum = 1;
}
//切换完一张图片时切换下一张图片的间隔
setTimeout(go,800);
}
//div变换的速度
},80);
}