图片切换(动画版)

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

预览:图片切换

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

知识预备:

【1】background-position-x

background-position属性设置背景原图像(由 background-image 定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。

background-position有两个属性值, background-position:x | y,用法上可以对其一个属性单独使用 background-position-x 和 background-position-y。

准备工作完毕,开始写代码

第一步

由于这次需要的div很多,所以采用动态添加的方式,直接看代码

 1     <style>
 2         body{
 3             margin: 0;
 4             background-color: #5e5e5e;
 5         }
 6         #box{
 7             width: 857px;
 8             height: 574px;
 9             padding-top: 126px;
10             padding-left:143px;
11             background: url(img/bg.png) no-repeat;
12             margin: 0px auto;
13         }
14         #wrap{
15             width: 700px;
16             height: 420px;
17             transform-style: preserve-3d;
18             perspective: 800px;
19         }
20         #wrap div{
21             width: 10px;
22             height: 420px;
23             background: url(img/01.png) no-repeat;
24             float: left;
25             transition: .5s;
26         }
27     </style>
28 </head>
29 <body>
30     <div id="box">
31         <div id="wrap"></div>
32     </div>
33     <script>
34
35
36         //在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片
37         for(var i=0;i<70;i++){
38             str +=‘<div style="background-position-x:‘+(-10*i)+‘px"></div>‘;
39         }
40         oWrap.innerHTML = str;
41
42         //获取70个div
43         var divs = oWrap.getElementsByTagName(‘div‘);    </script>   </body>

第二步

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

tab()函数

 1         // 每个div设置前一个div的透明度为1,并且设置自己的透明度为0和背景图片
 2         function tab(n){
 3             // 0
 4             if(divs[n-1]){
 5                 divs[n-1].style.opacity = 1;
 6             }
 7             // 70
 8             if(divs[n]){
 9                 divs[n].style.opacity = 0;
10                 divs[n].style.backgroundImage = "url(img/0"+imgNum+".png)";
11             }
12         }

第三步

写go()函数,利用定时器改变tab()函数的参数并且适时的改变背景图片

go()

 1         //给tab()函数传递n值
 2         function go(){
 3             timer = setInterval(function(){
 4                 tab(num);
 5                 num++;
 6                 //一张图片切换完毕
 7                 if(num == 71){
 8                     clearInterval(timer);
 9                     //切换下一张图片
10                     imgNum++;
11                     //num清0,动画效果从第一个div开始
12                     num = 0;
13                     //当切到最后一张图片时,在从第一张开始切换
14                     if(imgNum == 6){
15                         imgNum = 1;
16                     }
17                     //切换完一张图片时切换下一张图片的间隔
18                     setTimeout(go,800);
19                 }
20             //div变换的速度
21             },80);
22         }

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

源码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>图片切换(动画版)</title>
 6     <style>
 7         body{
 8             margin: 0;
 9             background-color: #5e5e5e;
10         }
11         #box{
12             width: 857px;
13             height: 574px;
14             padding-top: 126px;
15             padding-left:143px;
16             background: url(img/bg.png) no-repeat;
17             margin: 0px auto;
18         }
19         #wrap{
20             width: 700px;
21             height: 420px;
22             transform-style: preserve-3d;
23             perspective: 800px;
24         }
25         #wrap div{
26             width: 10px;
27             height: 420px;
28             background: url(img/01.png) no-repeat;
29             float: left;
30             transition: .5s;
31         }
32     </style>
33 </head>
34 <body>
35     <div id="box">
36         <div id="wrap"></div>
37     </div>
38     <script>
39
40
41         //在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片
42         for(var i=0;i<70;i++){
43             str +=‘<div style="background-position-x:‘+(-10*i)+‘px"></div>‘;
44         }
45         oWrap.innerHTML = str;
46
47         //获取70个div
48         var divs = oWrap.getElementsByTagName(‘div‘);
49
50         go();
51
52         //给tab()函数传递n值
53         function go(){
54             timer = setInterval(function(){
55                 tab(num);
56                 num++;
57                 //一张图片切换完毕
58                 if(num == 71){
59                     clearInterval(timer);
60                     //切换下一张图片
61                     imgNum++;
62                     //num清0,动画效果从第一个div开始
63                     num = 0;
64                     //当切到最后一张图片时,在从第一张开始切换
65                     if(imgNum == 6){
66                         imgNum = 1;
67                     }
68                     //切换完一张图片时切换下一张图片的间隔
69                     setTimeout(go,800);
70                 }
71             //div变换的速度
72             },80);
73         }
74
75         // 每个div设置前一个div的透明度为1,并且设置自己的透明度为0和背景图片
76         function tab(n){
77             // 0
78             if(divs[n-1]){
79                 divs[n-1].style.opacity = 1;
80             }
81             // 70
82             if(divs[n]){
83                 divs[n].style.opacity = 0;
84                 divs[n].style.backgroundImage = "url(img/0"+imgNum+".png)";
85             }
86         }
87
88
89     </script>
90 </body>
91 </html>
时间: 2024-10-09 23:39:39

图片切换(动画版)的相关文章

uwp 图片切换动画

最近在学习安卓,LOL自定义战绩项目近乎停工,而且腾旭把界面全改了,好烦.刚好学习到安卓中的图片切换动画,我就想在LOL项目中实现一个.首先上百度查看一下,妈的,资料少的可怜. 还是自己来吧.自定义控件走一波 效果图 新建自定义控件 直接改模板文件 把里面换成一个image source绑定到依赖属性上 <Style TargetType="control:ImageDisplayer"> <Setter Property="Template"&g

uwp 图片切换动画 使用帧动画

原文:uwp 图片切换动画 使用帧动画 上一篇博客使用了Timer来实现图片的切换,@lindexi_gd讨论了一下性能,我本人其实对性能这一方面不太熟,但我觉得还是有必要考虑一下,那么今天我们使用帧动画开实现以下 新建项目,添加一个Button和Image 在Page里定义资源 <Storyboard x:Key="std" x:Name="std" RepeatBehavior="Forever" AutoReverse="T

这个图片切换动画只用CSS3实现

体验效果:http://hovertree.com/texiao/css3/39/ 这是一个使用纯CSS3实现的图文切换效果,没使用js脚本.点击左右箭头或者索圆点引按钮可以切换内容. 本特效中使用到了CSS3的新选择器 nth-of-type(n),:nth-of-type(n) 选择器匹配属于父元素的特定类型的第 n 个子元素的每个元素.n 可以是数字.关键词或公式.参考:http://hovertree.com/h/bjaf/c2c0k0tf.htm 代码中也出现了css的大于号选择器,请

HTML5移动端图片左右切换动画

插件描述:HTML5移动端图片左右切换动画 小海今天要给大家分享一款很不错的图片左右切换焦点图动画,并且支持移动端触摸滑动.功能上,这款HTML5图片播放器支持鼠标滑动.手机端触摸滑动以及自动播放.外观上,这款HTML5图片切换动画的两侧有淡化处理,因此更显立体效果. 找html5教程开发,canvas开发,jquary特效的朋友来涂志海个人博客网,这里有你想要的一切(万一没有的,请联系涂志海,再解决,嘿嘿)同样的,这里静态图片完全体现不出来这个插件的效果,大家可以点击演示地址看看. 下 载 演

jQuery演示10种不同的切换图片列表动画效果

经常用到的图片插件演示jQuery十种不同的切换图片列表动画效果 在线演示 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <!DOCTYPE html> <html lang="en" class="no-

简单实现图片间的切换动画 主要用到ViewPager

简单实现图片间的切换动画 主要用到ViewPagerViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view.ViewPager类需要一个PagerAdapter适配器类给它提供数据 PagerAdapter适配器,必须实现四个方法getCount.isViewFromObject.destroyItem.instantiateItem import android.os.Bundle;import android.support.v4.view.PagerA

Activity 切换动画(小米图库列表进入详情页,图片从固定位置放大进入,缩小退出)

直接上效果图 ok,来分析下如何实现的吧 分析原理 首先确定,这是两个不同的 Activity,从图片列表页跳入到图片详情页:先来看进入详情页时的动画,从列表中所在 item 的位置一直放大到详情页的显示位置,这里我可以先告诉大家,当我们点击了这个 item 的时候,就已经启动了详情页,然后在详情页做相应的动画效果.既然是在详情页做动画效果,就需要在列表页把相应的值传过去,列表页 item 在屏幕上的位置,item 的大小,当然还有图片的资源,然后在详情页计算动画执行的参数.分析了进入动画,那么

21款大气的全屏图片切换代码

html5全屏背景切换点击按钮svg背景滑动切换特效 jQuery全屏响应式手指滑动图片轮播代码 jquery商城网站全屏多张图片滑动切换代码 jQuery仿瑞丽全屏透明遮罩图片轮播滚动代码 html5响应式全屏滚动图片切换幻灯片特效 jQuery全屏带进度条图片轮播特效 jQuery仿音悦台网站全屏带标题的焦点图轮播代码 jQuery背景和banner图片一起切换全屏焦点图切换代码 jquery html5响应式幻灯片插件网站响应式全屏幻灯片轮播代码 JQuery自适应全屏图片滚动鼠标上下滑动

Android切换动画之ViewPager

有过开发经验的程序员都知道这个效果,就是当我们第一次安装一个软件时有一个使用说明的图片切换效果,他是如何实现的呢?今天我们就一起学习一下吧,难度系数1.0,就是只要你仔细分析,都可以学会.废话不多说,下面我们开始本篇的介绍. 本篇我需要使用到ViewPager,对于ViewPager的介绍,就不再详述,网上关于ViewPager的介绍很多,大家可以自行去了解. 再进行动画效果制作之前我们先实现一个图片的切换效果. 布局文件: <RelativeLayout xmlns:android="h