首页 > 网站 > WEB开发 > 正文

弄清 CSS3 的 transition 和 animation

2024-04-27 14:33:28
字体:
来源:转载
供稿:网友
弄清 CSS3 的 transition 和 animation

弄清 CSS3 的 transition 和 animation

transition

transition 属性是transition-PRoperty,transition-duration,transition-timing-function,transition-delay的简称,用于设定一个元素的两个状态,不同的状态可以用伪类,比如:hover, :active 或者是通过 javascript 动态设定。IE10+支持。

所以 transition 的初始值为:

transition-delay: 0s;transition-duration: 0s;transition-property: all;transition-timing-function: ease;

用法

div {  transition: <property> <duration>    <timing-function> <delay>;}

并且有事件可以监测 transition 结束

el.addEventListener("transitionend",updateTransition,true);//in webkitel.addEventListener("webkitTransitionEnd",updateTransition,true);

实例

HTML

<!--  DEMO 1: Fade Block --><div id="fade">     move here  !</div><div id="nudge">    mouse on me </div><div id="bounce">Place mouse on  me i will bounce!</div><div id="spin">Place mouse on  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i won  me i will spin</div><div id="accordion" class="accordion">    <a href="#first">This is first tab</a>    <div id="first"><p>Lorem ipsum </p> </div>    <a href="#second">This is second tab</a>    <div id="second"><p>Lorem ipsum </p> </div>    <a href="#third">This is third tab</a>    <div id="third"><p>Lorem ipsum </p> </div></div>

CSS

/*DEMO 1: Fade Block*/div {    margin-bottom: 50px;}#fade {    /*opacity:1;    -webkit-transition: opacity 10s liner 10s;*/  position: relative;  transition-property: font-size;  transition-duration: 0.5s;  transition-delay: 0;  font-size: 14px;}#fade:hover {  font-size: 36px;}/* DEMO2 */#nudge{        -webkit-transition-property: color,        background-color,padding-left;    -webkit-transition-duration: 500ms,500ms, 500ms;}#nudge:hover{    background-color: #efefef;    color: #333;    padding-left: 50px;}#bounce:hover {    -webkit-animation-name:bounce;    -webkit-animation-duration:1s;    -webkit-animation-iteration-count:2;    -webkit-animation-direction:alternate}@-webkit-keyframes bounce {    from{margin-left:0;}    to{margin-left:250px;}}#spin{    -webkit-transition: -webkit-transform 10s ease-in;}#spin:hover{    -webkit-transform: rotate(36000deg);}.accordion a{    display: block;    padding:5px 10px;    background-color:#ccc;    color:#000;        /*可以去掉链接的下划线等修饰效果*/    text-decoration:none;    }.accordion a:hover{    background-color:#999;}.accordion div{    background-color:#cda;    color:#222;}.accordion div p{    padding:20px} #accordion div{    /*先隐藏起来*/    height:0;    overflow:hidden;        -webkit-transition:height 600ms ease;}#accordion div:target{    height:110px;}

animation

animation 属性是如下这些属性的简写animation-name: noneanimation-duration: 0sanimation-timing-function: easeanimation-delay: 0sanimation-iteration-count: 1animation-direction: normalanimation-fill-mode: none

用法

animation:animation-name    time(duration)    timing-function    time(delay)    animation-iteration-count( 结束之前的循环次数)    single-animation-direction     /*{    animation-direction: normal (每次从正方向开始)animation-direction: reverse (每次从反方向开始)animation-direction: alternate (正反往复)    }*/    single-animation-fill-mode

实例

<div class="view_port">   <div class="polling_message">        Listener for dispatches        </div>   <div class="cylon_eye">   </div></div>
.polling_message {    color: white;    float: left;    margin-right:2%;}.view_port {    background-color: black;    height: 50px;    width: 100%;    overflow: hidden;}.cylon_eye {    color: white;    height: 100%;    width: 80%;    background-color: red;        background-image: linear-gradient(to right, rgba(0, 0, 0, 0.9) 25%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.9) 75%);        -webkit-animation: move_eye 4s linear 0s infinite alternate;       -moz-animation: move_eye 4s linear 0s infinite alternate;         -o-animation: move_eye 4s linear 0s infinite alternate;            animation: move_eye 4s linear 0s infinite alternate;}@-webkit-keyframes move_eye {    from {        margin-left:-20%;    }    to {        margin-left:100%;    }}@-moz-keyframes move_eye {    from {        margin-left:-20%;    }    to {        margin-left:100%;    }}@-o-keyframes move_eye {    from {        margin-left:-20%;    }    to {        margin-left:100%;    }}@keyframes move_eye {    from {        margin-left:-20%;    }    to {        margin-left:100%;    }}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表