一、过渡

  过渡效果一般由浏览器直接改变元素的CSS属性实现。

  a、transition属性

  transition 属性是一个简写属性,用于设置四个过渡属性:

  • transition-property
  • transition-duration
  • transition-timing-function
  • transition-delay

  注释:请始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。 

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <style type="text/css">
7 div{
8 width: 100px;
9 height: 100px;
10 background: blue;
11 transition: width 2s,background 3s,3S linear 3s;
12 }
13 div:hover{
14 width: 300px;
15 background: red;
16 transition: width,background, 3s linear 2s;
17 }
18 </style>
19 </head>
20 <body>
21 <div>
22
23 </div>
24 </body>
25 </html>

  可以设置设置某个属性的过渡持续时间(transition: width 2s,background 3s,3s linear 3s;),也可以设置所有的属性的过渡的持续时间(transition: width,background, 3s linear 2s)属性值和时间必须用逗号隔开;

  b、transition-property

  transition-property 属性规定应用过渡效果的 CSS 属性的名称。(当指定的 CSS 属性改变时,过渡效果将开始)。

  提示:过渡效果通常在用户将鼠标指针浮动到元素上时发生。

  

   c、transition-duration 

   transition-duration 属性规定完成过渡效果需要花费的时间(以秒或毫秒计)。

  

  d、transition-timing-funtion

  transition-timing-function 属性规定过渡效果的速度曲线。该属性允许过渡效果随着时间来改变其速度。

  

   e、transition-delay

  transition-delay 属性规定过渡效果何时开始。transition-delay 值以秒或毫秒计。

    

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <style type="text/css">
7 div{
8 width: 100px;
9 height: 100px;
10 background: blue;
11 }
12 div:hover{
13 width: 300px;
14 background: red;
15 transition-property: width,background;
16 transition-duration: 3s;
17 transition-timing-function: linear;
18 transition-delay: 0ms;
19 }
20 </style>
21 </head>
22 <body>
23 <div>
24
25 </div>
26 </body>
27 </html>

  其中过渡属性之间用逗号隔开,可以为延迟时间和持续时间设置多个值,分别对应不同的属性。

  变化过程

  

  

  

  上面的过都效果只有鼠标悬停在元素上才会发生,当鼠标离开时,会恢复到元素的开始状态,可以设置反向过渡,使元素的过渡样式平滑的返回初始样式。  

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <style type="text/css">
7 div{
8 width: 100px;
9 height: 100px;
10 background: blue;
11 transition: width 2s,background 3s, 3s linear 3s;/*反向过渡*/
12 }
13 div:hover{
14 width: 300px;
15 background: red;
16 transition: width,background, 3s linear 2s;
17 }
18 </style>
19 </head>
20 <body>
21 <div>
22
23 </div>
24 </body>
25 </html>

  

  

  

  

  

  注意:

  Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition 属性。Safari 支持替代的 -webkit-transition 属性。

    注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition 属性。

二、动画  

  通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片、Flash 动画以及 JavaScript。动画是使元素从一种样式逐渐变化为另一种样式的效果。您可以改变任意多的样式任意多的次数。

  a、animation

  animation 属性是一个简写属性,用于设置动画属性:

  • animation-name
  • animation-duration
  • animation-timing-function
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-fill-mood

  注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

  b、animation-name 

  animation-name 属性为 @keyframes 动画规定名称。

  注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

  

  c、animation-duration

  animation-duration属性定义动画完成一个周期所需要的时间,以秒或毫秒计。

  

  d、animation-timing-function

  animation-timing-function 规定动画的速度曲线。速度曲线定义动画从一套 CSS 样式变为另一套所用的时间。速度曲线用于使变化更为平滑。

  

  e、animation-iteration-count

  animation-iteration-count 属性定义动画的播放次数。

  

  f、animation-direction 

   animation-direction 属性定义是否应该轮流反向播放动画。

  normal每个循环内动画向前循环,换言之,每个动画循环结束,动画重置到起点重新开始,这是默认属性。alternate动画交替反向运行,反向运行时,动画按步后退,同时,带时间功能的函数也反向,比如,ease-in 在反向时成为ease-out。reverse反向运行动画,每周期结束动画由尾到头运行。alternate-reverse反向交替, 反向开始交替动画,第一次运行时是反向的,然后下一次是正向,后面依次循环.

    如果 animation-direction 值是 "alternate",则动画会在奇数次数(1、3、5 等等)正常播放,而在偶数次数(2、4、6 等等)向后播放。    

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <style>
7 div{
8 width: 100px;
9 height:100px;
10 background: red;
11 }
12 div:hover{
13 animation: donghua 3s linear 1ms 1 normal;
14 }
15 @keyframes donghua{
16 from{
17 background: yellow;
18 }
19 50%{
20 background: brown;
21 }
22 to{
23 width: 300px;
24 background: blue;
25 }
26 }
27 </style>
28 </head>
29 <body>
30 <div>
31
32 </div>
33 </body>
34 </html>

  

  

  

  

  

  g.animation-fill-mood

  这个 CSS 属性用来指定在动画执行之前和之后如何给动画的目标应用样式。

  none动画执行前后不改变任何样式,forwards目标保持动画最后一帧的样式,backwards动画采用相应第一帧的样式,both动画将会执行 forwards 和 backwards 执行的动作。

  当动画的次数设置成一次时;动画最后即使鼠标还悬停在元素上面,元素也会恢复默认状态。这个是和过渡的区别之一,同时动画可以提供同一个属性的多个变化值,二过渡只有两设置两个值。

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

   使用动画:1、在对应的元素上设置动画的相关属性(animation属性)

       2、为动画设置多个关键帧。(@keyframes 动画名字)

  可以为一个元素应用一个动画,元素选择器用逗号隔开即可。也可以为一个元素应用多个动画,元素同时执行多个关键帧。

  g、animation-play-state

  animation-play-state 属性规定动画正在运行还是暂停。注释:您可以在 JavaScript 中使用该属性,这样就能在播放过程中暂停动画。

  

三、变换

  通过 CSS3 变换,我们能够对元素进行移动、缩放、转动、拉长或拉伸。使用transform属性为元素应用变换。

  translate(长度值或者百分比)  在水平方向上、垂直方向上平移元素。transform属性可以指定为关键字值none 或一个或多个<transform-function>值。

  常用的<transform-function>:

  a.translate()、translateX()、translateY()

  translate用来在平面上平移一个元素。可以使用translate(tx) 或translate(tx, ty),第一个参数指定x轴的平移距离,第二个参数指定y轴的平移距离。如果只指定了一个参数,那么X和Y轴都采用整个值。

  

    translateX和translateY时translate属性的分开表达。translateX(tx) 是 translate(tx, 0) 的简写形式,translateY(ty) 是 translate(0, ty)的简写形式。

  b.translate3d()和translateZ()

  translate3d() 这个CSS 函数用于移动元素在3D空间中的位置。语法translate3d(tx, ty, tz)。Z轴垂直X、Y轴向外。translateZ(tz)相当于translate3d(0,0,tz);  

  c.rotate(a deg) 

  

  rotate(a) CSS 函数 定义一个旋转属性,将元素在不变形的情况下旋转到不动点周围(如 transform-origin 属性所指定) 。 移动量a由指定角度定义;如果为正值,则运动将为顺时针,如果为负值,则为逆时针 。默认是绕Z轴的旋转。

  rotateX(a)、rotateY(a)、rotateZ(a)分别是设置绕X、Y、Z轴的旋转。 

  可以和rotate()函数结合使用的是transform-origin: center;指定旋转变换的点,默认在元素的中心,可以使用两个百分数或者两个数字来指定。

  d.scale()

  scale() CSS 函数可改变元素的大小。 它可以增大或减小元素的大小。

  

  scale()函数是scaleX()和scaleY()简写。当scale()函数只指定一个参数的时候,X、Y方向上共享整个参数。

  e.skew()

  skew() 这个CSS函数是一种用于拉伸,或者说是平移,该函数会使得在每个方向上扭曲元素上的每个点以一定角度.skew(ax) 或skew(ax, ay).

  skew()是skewX()和skewY()的简写。skewX()想做拉伸一个元素,skewY()向上拉伸一个元素。

  

CSS3中的过渡、动画和变换的更多相关文章

  1. css3中变形与动画(三)

    transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...

  2. CSS3中的3D动画实现(钟摆、魔方)--实现代码

    CSS3中的3D动画实现(钟摆.魔方) transition-property 过渡动画属性  all|[attr] transition-duration 过渡时间 transition-delay ...

  3. css3中变形与动画(二)

    css3制作动画的几个属性:变形(transform),过渡(transition)和动画(animation). transform介绍过了.接下来介绍过渡transition. 一.例子 先通过一 ...

  4. css3中变形与动画(一)

    css3制作动画的几个属性:变形(transform),过渡(transition)和动画(animation). 首先介绍transform变形. transform英文意思:改变,变形. css3 ...

  5. css3中的制作动画小总结

    系列教程 CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: Transform 在CSS3中transform主要包括以下几种:旋转rotate. ...

  6. CSS3中的animation动画

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. css3贝塞尔曲线过渡动画速率——transition-timing-function:cubic-bezier(n,n,n,n)

    css3过渡动画速率用到的是三阶贝塞尔曲线,曲线有四个点,p0,p1,p2,p3 有几个属性: linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1)). ...

  8. css3中的过渡(transition)

    css3 transition(过渡)1.语法: transition:[ transition-property ] || [ transition-duration ] || [ transiti ...

  9. 怎样使CSS3中的animation动画当每滑到一屏时每次都运行

    这个得结合js来做的.比如这里有3个层,js判断滚动到当前层位置的时候给其加上一个class即可,而加的这个class就是带css3执行动画的 class <div id="a1&qu ...

随机推荐

  1. 前端 | vxe-table 翻页保留复选框状态

    0 前言 在前端开发过程中时常会遇到表格相关的显示与处理.组件库通常都会提供表格组件,对于展示.简单操作这些常用功能通常也够用:但如果需要更多的定制或进行比较复杂的操作,组件库自带的组件可能会捉襟见肘 ...

  2. OO第四单元——基于UML的UML解析器总结&OO课程总结

    OO第四单元--基于UML的UML解析器总结&OO课程总结 前言:一学期愉快(痛苦)的OO课程学习结束了,OO几个单元作业都各有特色,实验也各有特色,仔细回味起来,不再是单纯的敲代码(但自己还 ...

  3. Java代码格式化规范实践总结

    目标说明 统一良好的代码格式规范可以有效提升开发团队之间的「协作效率」,如果不同的开发团队或者开发人员采用不同的代码格式规范,那么每次Format代码都会导致大量的变化,在Code Review及Me ...

  4. 《Effective C++》部分内容学习笔记整理

    简介 此笔记为<Effective C++>中部分内容的学习笔记. 目录 文档:<Effective C++>

  5. 基于MATLAB的手写公式识别(6)

    基于MATLAB的手写公式识别 2021-03-29 10:24:51 走通了程序,可以识别"心脑血管这几个字",还有很多不懂的地方. 2021-03-29 12:20:01 tw ...

  6. 1-2 postman工具简介

    postman提供了一个多窗口和多选项卡页面用于发送和接受请求,postman努力保持整洁和灵活,提供更多的空间,满足用户的需要.他很简单,能满足大部分接口的测试,性价比特别高.如图所示:  1.侧边 ...

  7. 缓冲区溢出分析第06课:W32Dasm缓冲区溢出分析

    漏洞报告分析 学习过破解的朋友一定听说过W32Dasm这款逆向分析工具.它是一个静态反汇编工具,在IDA Pro流行之前,是破解界人士必然要学会使用的工具之一,它也被比作破解界的"屠龙刀&q ...

  8. IDAPython类库---idautils.py的源码

    #--------------------------------------------------------------------- # IDAPython - Python plugin f ...

  9. PAT 乙级 -- 1001 -- 害死人不偿命的(3n+1)猜想

    题目: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年 ...

  10. Windows核心编程笔记之进程

    改变进程基址,获取进程基址 #include <Windows.h> #include <iostream> #include <strsafe.h> #inclu ...