css3中的过渡效果和动画效果

一、CSS3 过渡

(一)、CSS3过渡简介

CSS3过渡是元素从一种样式逐渐改变为另一种的效果。

实现过渡效果的两个要件:

  • 规定把效果添加到哪个 CSS 属性上
  • 规定效果的时长

定义动画的规则

过渡transition  (作用) 将元素的某个属性从“一个值”在指定的时间内过渡到“另一个值”

(二)、transition属性

   语法 :   {transition: 属性名 持续时间 过渡方法}

  • transition-property     属性的名字(如果是一个属性就带有这个属性的名字;如果是多个属性,属性名之间用逗号隔开;如果是所有属性,用all表示即可。)表示对哪个属性进行变化。
  • transition-duration     变化持续的时间长度(秒或是毫秒)
  • transition-timing-function   过渡实现的方式(比如说,先慢后快/先快后慢),具体实现的时候是以函数来实现的。
  • transition-delay    过渡开始前等待的时间,单位为秒或是毫秒。

transition-timing-function  属性取值

  • linear    匀速(线型过渡)
  • ease      先慢后快再慢
  • ease-in  先慢后快
  • ease-out 先快后慢
  • ease-in-out  开头慢结尾慢,中间快


实例

原有的状态是灰底红字,鼠标悬停在上面利用transition属性设置了一个3s 之内的变化,背景为由红到蓝的渐变色,文字颜色也逐渐变成白色。

1、首先定义div标签的原始状态,

2、再设置当鼠标悬停在上面的状态。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>过渡</title>
 6     <style>
 7     div{
 8         height: 100px;
 9         width:300px;
10         line-height:30px;
11         border-radius:5px;
12         align-content:center;
13         color:red;
14         background-color: #999;
15         transition:all 1s linear;
16     }
17     div:hover{
18         color:white;
19         /*background-color: #007;*/
20         background:linear-gradient(to bottom,#f0f,#00f)
21     }
22     </style>
23 </head>
24 <body>
25     <div align="center" style="font-size:30px">transition</div>
26 </body>
27 </html>

表现效果:(因为过渡是一个动态的效果,所以下面仅展示初始状态、中间、过渡后的效果)

初始

中间

最后

 



 

二、CSS3动画

(一)、CSS3中的动画实现的是什么效果

动画是使元素从一种样式逐渐变化为另一种样式的效果。可以改变任意多的样式任意多的次数。动画效果是通过animation属性来完成的。

用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。0% 是动画的开始,100% 是动画的完成。为了得到最佳的浏览器支持,应该始终定义 0% 和 100% 选择器。

实现动画效果两要件:

  • 1、首先要定义一个动画  ,定义一个@keyframes  规则(关键帧)
  • 2、调用动画    动画定义好之后,使用animation 属性调用动画

了解动画的形成原理:

是根据人的“视觉暂留”现象,将一组静止的图形连续出现后,便形成了动画。Flash动画就是基于此原理来制成动画的,时间轴上的每一帧在编辑区中有不同的图形,当时间轴上的帧以当前帧频向前移动时,我们看到的是编辑区中的一组图形不断变化,从而产生了运动的视觉效果

(二)、animation属性设置动画效果

animation属性取值

  • @keyframes                          规定动画
  • animation                               所有动画属性的简写属性,除了animation-play-state属性
  • animation-name                    规定@keyframes 动画名称
  • animation-duration                规定一个动画完成的周期所花费的秒或毫秒。默认值为0,
  • animation-timing-function     规定动画的速度曲线。默认值为ease
  • animation-delay                   动画开始前等待的时间。取值可为负(-2s 动画跳过 2 秒进入动画周期)属性不兼容 IE 9以及更早版本的浏览器.
  • animation-iteration-count      规定动画播放的次数。默认值为1
  • animation-driection               规定动画是否在下一周期逆向地播放。默认值是normal
  • animation-play-state             规定动画是否正在运行或暂停。默认值是running
  • animation-fill-mode               规定对象动画时间之外的状态

animation-timing-function  属性取值

  • linear    匀速(线型过渡)
  • ease      先慢后快再慢
  • ease-in  先慢后快
  • ease-out 先快后慢
  • ease-in-out  开头慢结尾慢,中间快


实例:

用动画animation属性实现在位置变化的同时颜色也发生相应的变化。

颜色:由红色—黄色—蓝色—绿色—红色;

位置:距左0px距顶0px—距左200px距顶0px—距左200px距顶200px—距左0px距顶200px—距左0px距顶0px(回到原地)

animation属性:@keyframes(关键帧) 动画名称为mycolor;一个动画周期为5s;动画运动先慢后快再慢ease;动画开始前等待2s;无限(infinite)循环播放;动画正在运行(runing)。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>动画</title>
 6     <style>
 7     div{
 8         width:400px;
 9         height:400px;
10         background:red;
11         position:relative;
12         animation-name:mycolor;
13         /*animation-name规定@keyframes 动画名称*/
14         animation-duration:5s;
15         /*animation-duration规定一个动画完成的周期所花费的秒或毫秒*/
16         animation-timing-function:ease;
17         /*animation-timing-function规定动画的速度曲线*/
18         animation-delay:2s;
19         /*animation-delay规定动画何时开始。默认值为0*/
20         animation-iteration-count:infinite;
21         /*animation-iteration-count规定动画播放的次数*/
22         animation-direction:alternate;
23         /*animation-driection规定动画是否在下一周期逆向地播放*/
24         animation-play-state:running;
25         /*animation-play-state规定动画是否正在运行或暂停*/
26     }
27            @keyframes mycolor
28           {
29                0%   {background:red;left:0px; top:0px; }
30                25%  {background:yellow; left:200px; top:0px;}
31                50%  {background:blue;left:200px; top:200px}
32                75%  {background:green;left:0px; top:200px;}
33               100% {background:red;left:0px; top:0px;}
34 }
35     </style>
36 </head>
37 <body>
38     <div></div>
39 </body>
40 </html>

除了可以这样每个属性单独设置,也可以使用animation 的简写属性:

1 div{
2         width:400px;
3         height:400px;
4         background:red;
5         position:relative;
6         animation:mycolor 5s linear 2s infinite alternate;
7     }

原文地址:https://www.cnblogs.com/nyw1983/p/11361089.html

时间: 2024-07-29 22:45:46

css3中的过渡效果和动画效果的相关文章

利用CSS3 中steps()制用动画

.monster { width: 190px; height: 240px; margin: 2% auto; background: url('http://treehouse-code-samples.s3.amazonaws.com/CSS-DD/codepen/blog/monster.png') left center; animation: play .8s steps(10) infinite; } @keyframes play { 100% { background-posi

实用CSS3的transform实现多种动画效果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="http://keleyi.com"> <title>实用CSS3的transform实现多种动画效果-柯乐义</title><base target="_blank" /> <s

Android中Acitvity跳转动画效果实现

在Activity中为我们提供了overridePendingTransition方法,该方法两个参数参数类型均为资源文件对应id,我们要用到的是anim下的动画效果文件.具体写法如 public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC

html5+css3第一屏滚屏动画效果

详细内容请点击 在线预览立即下载 html5+css3第一屏滚屏动画效果. 转载自:http://tympanus.net/codrops/2014/05/22/inspiration-for-article-intro-effects/ var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-7243260-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.

css3伪放大镜(图片放大动画)效果(鼠标移入圆形区域放大图片)

源码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>css3伪放大镜(图片放大动画)效果</title><style>.gallery{list-style:none}.gallery:before,.gallery__item:last-child{position:fixed;top:50

CSS3中的变形与动画(二)

CSS3动画 过渡属性transiton-property 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成.但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化,让效果显得更加细腻.简单点说,就是通过鼠标的单击.获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值. 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 1.在默认样式中声明元素的初始状态样式: 2.声明过渡元素最终状态

CSS3中的变形与动画【转】

最近在学习制作移动端的页面,做了一个微信页面的小demo,其中用到了很多的CSS3新增的内容,其中就有CSS3新增的变形和动画.其实这种CSS3的动画效果用JS也可以实现,不过CSS3能开启硬件加速,性能更好. (下面均没写浏览器前缀,如有需要请自行添加~~) CSS3常见的动画效果的实现,其实主要是靠 transition和 animation . 而通常,这两个又会和CSS3中的新属性transform 来搭配使用 那么这三个东西其实是干什么用的呢?我按我自己的理解来下个简单结论. tran

纯CSS3制作卡通场景汽车动画效果

前言 今天分享一下我昨晚做的CSS3动画效果——卡通场景汽车动画.在接触CSS3动画之前,我之前实现一些简单的动画效果都是使用flash完成的.但是自从CSS3横空出世,在移动端对CSS3动画的运用越来越多.今天这个分享是PC端的案例,因为我做的是大场景来的,起因还是我无意间看到一张卡通图片.于是我突发灵感,就趁热打铁使用CSS3动画把它按照自己的想法实现了出来.接下来,就让我们一起进入这个好玩的分享吧! 预览 学习一个案例要有热情,就应该先看一下案例的效果,所以,下图为我录的gif图片,大家先

css3 transition属性实现3d动画效果

transition属性是一个很强大的3d动画属性,我动手试了一下,很多在网上很火的网页动画都可以用这个属性实现,只能说这个属性是在是太强大啦,本人在学习次属性之后才知道自己对css3的认识还是偏少,现在我给大家介绍并实际实现下该属性. transition字面意思是变迁.变换.过度的意思,所以transition属性也离不开这个大致意思,其中该属性中的重要属性是: transition-property:指定过度的元素; 如:transition-property:background,就是指