弄清 CSS3 的 transition 和 animation

原文:弄清 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 webkit
el.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: none
animation-duration: 0s
animation-timing-function: ease
animation-delay: 0s
animation-iteration-count: 1
animation-direction: normal
animation-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%;
    }
}

弄清 CSS3 的 transition 和 animation

时间: 2024-10-01 03:08:35

弄清 CSS3 的 transition 和 animation的相关文章

CSS3动画 transition和animation的用法和区别

transition和animation都是CSS3新增的特性,使用时需要加内核 浏览器 内核名称 W3C   IE  -ms-  Chrome/Safari -webkit-   Firefoc -moz-   opera -o-  区别: transition是过度属性,需要用户自行触发,触发时间比如:点击,鼠标悬浮等 animation是动画属性,其不需要用户触发,网页加载完成后自动执行 使用: transation{过度属性 过度时间 动画类型 延迟时间} -o-transation{过

2018年1月17日总结 css3里transition 和animation 区别

transition 和animation两个CSS3属性经常被用到实际项目中,想把它整理出来. 1.先介绍transition >>>>>  a. 在做项目中经常会遇见这样的情景,比如一个按钮,当鼠标移入进去的时候改版按钮背景颜色以及字体颜色.此时外面一般会这样做: .btn{width: 80px;height: 25px;border: 1px solid #333;color:#333;text-align: center;line-height: 25px;} .b

css3 三大王 transition , transform , animation

三大王  transition : 过渡     , transform : 变形  ,   animation : 动画 1.transform  变形 任何的变形都可以被过渡   , 一个transform写多个用空格隔开 ,分开写可能会被覆盖, 想要实现3d效果要给父元素添加景深 eg:  perspective:500px; perspective-origin <1> transform: rotate(90deg)  意思是顺时针'旋转' 90度   ,  deg是单位度    可

css3 transition 和 animation实现走马灯

这段时间在做一个App,H5的开发.页面上有公告 以走马灯的形式显示出来. 在开始直接用的marquee标签,后来发现在ios客户端,走马灯移动不够平滑,有抖动现象. 对于有强迫症的我而言是无法忍受的,后来就用js来写,发现andriod和ios客户端 的走马灯移动都不平滑,会抖动. 后来想到了可以用css3的transition和animation来写,分享一下代码! transition写法 <!DOCTYPE html> <html> <head> <met

CSS3与动画有关的属性transition、animation、transform对比

最近应公司需求,需要用css3做动画,终于把以前一直傻傻分不清楚的三个属性理解了. 索性在这里进行一个简单的对比,加深自己的记忆. 浏览器兼容性 CSS3 transform 属性 Internet Explorer 10.Firefox.Opera 支持 transform 属性. Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换). Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D

CSS3中动画属性transform、transition和animation

Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能外,还提供了对动画的支持,可以用来实现旋转.缩放.平移.扭曲和过渡效果等等,这些功能再一次证明了CSS3功能的强大和无限潜能. CSS3实现元素变形的基础来源于新增的transform属性,该属性可用于实现元素的旋转.缩放.平移.扭曲等效果.目前webkit内核支持-webkit-transform

css3 transform transition animation 练习

旋转 位移 缩放 扭曲 动画 <!DOCTYPE HTML><html> <head> <meta charset="utf-8" /> <title>css3 transform transition animation 练习</title> <style type="text/css"> body { padding: 10px 50px; } div { margin: 50p

css3实践之图片轮播(Transform,Transition和Animation)

原文:css3实践之图片轮播(Transform,Transition和Animation) 楼主喜欢追求视觉上的享受,虽常以牺牲性能无法兼容为代价却也乐此不疲.本文就通过一个个的demo演示来简单了解下css3下的Transform,Transition和Animation. 本文需要实现效果:(请用chrome打开) 图片轮播 图片自动轮播 Transform 根据我的理解,transform和width.height.background一样,都是dom的属性,不同的是它是css3旗下的,

CSS3中和动画有关的属性transform、transition 和 animation

CSS3中和动画有关的属性有三个  transform. transition 和 animation.下面来一一说明:        transform   从字面来看transform的释义为改变,使…变形:转换 .这里我们就可以理解为变形.那都能怎么变呢? none 表示不进行变换: rotate 旋转            transform:rotate(20deg) 旋转角度可以为负数.需要先有transform-origin定义旋转的基点可为left top center righ