CSS过渡 和 CSS动画

CSS3中出现很多新的特性,其中比较好玩的3D操作就是: 过渡动画效果

 

相似:

animation属性类似于 transition,都是随着时间元素的属性值

 

区别:

它们主要区别在于: transition 需要触发一个事件才会随着时间改变其CSS属性;animation 在不需要触发任何事件的情况下,也可以显式的随时间变化来改变元素CSS属性,达到一种动画的效果。

1)、动画不需要事件触发, 过渡需要。

2)、过渡只有一组关键帧,对应 开始-结束 这一过程;

         动画可以设置多个;

 

过渡(transition)

     过渡就是使瞬间的样式变化,按照一定方式变得缓慢平缓;

     例如,鼠标划过超链接时颜色的变化,

                点击按钮后的颜色变化等,

p:hover {
    color: red;
}

p {
    transition-property: color;
    transition-duration: 2s;
    transition-timing-function: linear;
    transition-delay: 0;
}

 

1.gif

 

一共四个值,功能基本都是字面翻译的意思:

      transition-property 执行过渡的属性,例如本例中 color;

      transition-duration 过渡的时间,单位是秒, 不设置的话默认0s, 即无过渡效果;

     transition-timing-function 设置过渡的变化方式,默认是 ease ,即速度由慢到快再到慢,常用的还有linear,线性速度变化均匀。

     transition-delay 延迟时间  即多少秒后执行过渡效果,默认 0s,不延迟;

 

一般使用快捷写法:

p {
    transition: color 2s linear 0;
}
/*最少要指定过渡时间*/
p {
    transition: 2s;
}

 

p {
    transition: color 2s linear,
                font-size .5s,
                background: 1s;
}

 

由于是新特性,为了兼容性需要加上浏览器厂商前缀:

p {
    transition: 2s;
    -webkit-transition: 2s;
    -moz-transition: 2s;
    -ms-transition: 2s;
    -o-transition: 2s;
}

 

 

动画(animation)

CSS3的动画是个很不错的技术,基本能取代一些动画, JavaScript, flash等;

而动画里最重要的概念就是关键帧。

实现CSS动画需要设置关键帧,@keyframes:

@keyframes my-animation {
    0% {
        color: red;
    }
    50% {
        color: green;
    }
    100% {
        color: blue;
    }
}

@keyframes 跟的是自定义的动画名称

 动画内容中的百分比是关键帧对应的样式,

如果只需要首尾两个关键帧,可以这样写,

@keyframes my-animation {

   from {
        color:green;
   }

   to {
         color:blue;
   }
}

 

定义好了关键帧后,就直接再需要应用动画的元素标签内使用就行了,格式及所有属性如下:

p {
    animation-name: my-animation;
    animation-duration: 3s;
    animation-timing-function: ease;
    animation-delay: 0;
    animation-iteration-count: 3;
    animation-direction: normal;
    animation-play-state: running;
}

 

 

发现了吧,很多属性和transition 里面一样,简单介绍下:

      animation-name  动画名称

     amination-duration  动画时间

     animation-timing-function 动画方式

     animation-delay  动画延迟

 

     animation-iteration-count  动画次数 默认为1     一般设置为 infinite,即无限循环;

 

     animation-direction  normal 为默认  正向播放     reverse 为反向播放  alternate为正向后反向    alternate-reverse为反向后正向 ;

     animation-play-state    播放状态   默认running  运行    paused 暂停    可以再JavaScript中使用 对动画进行控制

 

当然,动画属性也有简便写法

p {
    animation: my-animation 3s linear infinite alternate;
}

其中 animation-name 和 animation-duration 为必须设置的属性;

同样,记得考虑浏览器兼容:

@-webkit-keyframes mycanimation {
    from {
        color: green;
    }
    to {
        color: blue;
    }
}
p {
    -webkit-animation: my-animation 3s linear infinite;
}
/* -moz-, -ms-, -o- 格式类似 */

 

posted on 2022-02-17 17:58  zhishiyv  阅读(528)  评论(0编辑  收藏  举报

导航