学习了妙味课堂的图片切换(动画版)
这个小效果相对简单一点。
知识预备:
【1】background-position-x
background-position属性设置背景原图像(由 background-image 定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。
background-position有两个属性值, background-position:x | y,用法上可以对其一个属性单独使用 background-position-x 和 background-position-y。
准备工作完毕,开始写代码
第一步
由于这次需要的div很多,所以采用动态添加的方式,直接看代码
<style> 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; } </style> </head> <body> <div id="box"> <div id="wrap"></div> </div> <script> //在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片 for(var i=0;i<70;i++){ str +='<div style="background-position-x:'+(-10*i)+'px"></div>'; } oWrap.innerHTML = str; //获取70个div var divs = oWrap.getElementsByTagName('div'); </script> </body>
第二步
写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); }
总结:这个动画效果实现起来简单,代码问题不大,主要就是实现思路的问题。
源码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片切换(动画版)</title> <style> 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; } </style> </head> <body> <div id="box"> <div id="wrap"></div> </div> <script> //在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片 for(var i=0;i<70;i++){ str +='<div style="background-position-x:'+(-10*i)+'px"></div>'; } 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)"; } } </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
标签:
js,图片切换
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“js实现图片切换(动画版)”评论...
更新动态
2024年11月18日
2024年11月18日
- 金元萱.1996-迷迷糊糊【宝丽金】【WAV+CUE】
- 齐秦《燃烧爱情》马来西亚版[WAV+CUE][1G]
- 动力火车《结伴》2024最新 [FLAC分轨][1G]
- 郑源《擦肩而过》[WAV+CUE][1.2G]
- 黑鸭子2008-江南四月天[首版][WAV+CUE]
- 黑鸭子2008-再醉一次·精选[首版][WAV+CUE]
- Elgar-Motdamour-UlfWallin,RolandPontinen(2024)[24bit-96kHz]FLAC
- 苏永康《 笑下去》 新曲+精选[WAV+CUE][1G]
- 周传雄《发觉》[WAV+CUE][1.1G]
- 证声音乐图书馆《真夏派对 x 浩室》[320K/MP3][67.19MB]
- 张镐哲.1994-无助【波丽佳音】【WAV+CUE】
- Relic.2024-浮在虛无的诗意【SEEAHOLE】【FLAC分轨】
- 群星.2001-台语(原主唱)排行总冠军黄金典藏版6CD【柯达唱片】【WAV+CUE】
- 证声音乐图书馆《真夏派对 x 浩室》[FLAC/分轨][379.1MB]
- 徐良《东西世界》[WAV+CUE][1.1G]