博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
幻灯片的实现
阅读量:4696 次
发布时间:2019-06-09

本文共 3810 字,大约阅读时间需要 12 分钟。

1.背景介绍

CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation

transform属性向元素应用2D或3D转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜

transition是令一个或多个可以用数值表示的css属性值发生变化时产生过渡效果。

Animation字面上的意思,就是“动画”的意思,

我们使用CSS3的Animation制作动画,实现简单的幻灯片效果,可以省去复杂的js,jquery代码。Animation有一点不足之处,

我们运用Animation能创建自己想要的一些动画效果,但是有点粗糙,如果想要制作比较好的动画,大家还是使用flash或js等。

2.知识剖析

animation: name duration timing-function delay

iteration-count direction fill-mode play-state;

对应:

animation:marginLeft 10s linear 2s infinite

100 reverse  paused

 

animation   所有动画属性的简写属性,除了 animation-play-state 属性。

animation-name  规定 @keyframes 动画的名称。 

animation-duration  规定动画完成一个周期所花费的秒或毫秒。默认是 0。

animation-timing-function   规定动画的速度曲线。默认是 "ease"。  

animation-delay 规定动画何时开始。默认是 0。

animation-iteration-count   规定动画被播放的次数。默认是 1。

animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。 

animation-play-state    规定动画是否正在运行或暂停。默认是 "running"。   

animation-fill-mode 规定对象动画时间之外的状态。

/* W3C 和 Opera: */

#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}

提示:允许负值,-2s 使动画马上开始,但跳过 2 秒进入动画。
animation-delay: -2s /* W3C 和 Opera */
-moz-animation-delay: -2s /* Firefox */
-webkit-animation-delay: -2s /* Safari 和 Chrome */

animation-iteration-count: n|infinite;
n   定义动画播放次数的数值。  
infinite    规定动画应该无限次播放。

animation-direction: normal|alternate;
normal  默认值。动画应该正常播放。  
alternate   动画应该轮流反向播放。

 

animation-play-state: paused|running;

paused  规定动画已暂停。  
running 规定动画正在播放。

animation-fill-mode 属性规定动画在播放之前或之后,其动画效果是否可见。
注释:其属性值是由逗号分隔的一个或多个填充模式关键词
animation-fill-mode : none | forwards | backwards | both;
none    不改变默认行为。
forwards    当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
backwards   在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both    向前和向后填充模式都被应用。

 

@keyframes myfirst

{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}
}

@-moz-keyframes myfirst /* Firefox */

{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}
}

@-webkit-keyframes myfirst /* Safari 和 Chrome */

{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}
}

@-o-keyframes myfirst /* Opera */

{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}
}

在开始介绍Animation之前我们有必要先来了解一个特殊的东西,那就是"Keyframes",我们把他叫做“关键帧”。

下面我们就一起来看看这个“Keyframes”是什么东西。一个动画初始属性和最终属性,

一个开始执行动作时间和一个延续动作时间以及动作的变换速率,其实这些值都是一个中间值,

如果我们要控制的更细一些,比如说我要第一个时间段执行什么动作,第二个时间段执行什么动作,

此时我们需要这样的一个“关键帧”来控制。那么CSS3的Animation就是由“keyframes”这个属性来实现这样的效果。

3.常见问题

@keyframes规则

兼容性该如何解决

4.解决方案

在CSS3中创建动画,您需要学习@keyframes规则。

 

Keyframes具有其自己的语法规则,他的命名是由"@keyframes"开头,

后面紧接着是这个“动画的名称”加上一对花括号“{}”,括号中就是一些不同时间段样式规则,

有点像我们css的样式写法一样。对于一个"@keyframes"中的样式规则是由多个百分比构成的,

如“0%”到"100%"之间,我们可以在这个规则中创建多个百分比,

我们分别给每一个百分比中给需要有动画效果的元素加上不同的属性,从而让元素达到一种在不断变化的效果,

比如说移动,改变元素颜色,位置,大小,形状等,不过有一点需要注意的是,

我们可以使用“fromt”“to”来代表一个动画是从哪开始,到哪结束,

也就是说这个"from"就相当于"0%"而"to"相当于"100%",值得一说的是,

其中"0%"不能像别的属性取值一样把百分比符号省略。 

Internet Explorer 11、Firefox以及Opera支持@keyframes规则和animation属性。

 

1  2  3  4      5     24 25 26     
27
28 29

 

也可以使用透明度实现:(li标签平铺方法(a)float(b)absolute+margin)

1  2  3     
4 css3实现幻灯片效果(改变背景的透明度) 5
6
7 76 77 78
    79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
86

还有两种写法,利用了label和a的特性。不完全算是幻灯片,先贴上来看看.(未操作过)

1  2  3    4     24   25   26     
27
28
29
30
31
32
36 37
1  2  3    4   23   24   25   
26
27
28
29
30
one31
two32
33 34

 

 

转载于:https://www.cnblogs.com/emma-post/p/10023611.html

你可能感兴趣的文章
PAT 1027. Colors in Mars
查看>>
linux定时执行脚本
查看>>
Oauth支持的5类 grant_type 及说明
查看>>
ASP.NET 5 DNX SDK删除旧版本
查看>>
Android ListView 九大重要属性详细分析
查看>>
CC++中sizeof函数的用法
查看>>
SPFA 算法详解( 强大图解,不会都难!) (转)
查看>>
QUIC:基于udp的传输新技术
查看>>
java常见面试题及部分答案
查看>>
动态添加方法的代码分析
查看>>
thinkPHP5.0使用模型新增数据
查看>>
客户端第一天学习的相关知识
查看>>
LeetCode - Same Tree
查看>>
Python dict get items pop update
查看>>
[置顶] 程序员必知(二):位图(bitmap)
查看>>
130242014036-(2)-体验敏捷开发
查看>>
constexpr
查看>>
Nginx 流量和连接数限制
查看>>
课堂作业1
查看>>
IE8/9 本地预览上传图片
查看>>