700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > html图片切换动画 js实现图片切换(动画版)

html图片切换动画 js实现图片切换(动画版)

时间:2024-05-23 20:21:45

相关推荐

html图片切换动画 js实现图片切换(动画版)

学习了妙味课堂的图片切换(动画版)

这个小效果相对简单一点。

知识预备:

【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;

}

//在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片

for(var i=0;i<70;i++){

str +='

}

oWrap.innerHTML = str;

//获取70个div

var divs = oWrap.getElementsByTagName('div');

第二步

写tab()函数,设置每个div要做的动画

tab()函数

// 每个div设置前一个div的透明度为1,并且设置自己的透明度为0和背景图片

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()

//给tab()函数传递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);

}

总结:这个动画效果实现起来简单,代码问题不大,主要就是实现思路的问题。

源码:

图片切换(动画版)

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;

}

//在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片

for(var i=0;i<70;i++){

str +='

}

oWrap.innerHTML = str;

//获取70个div

var divs = oWrap.getElementsByTagName('div');

go();

//给tab()函数传递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);

}

// 每个div设置前一个div的透明度为1,并且设置自己的透明度为0和背景图片

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)";

}

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。