• CSS(18)CSS3 过渡与动画


    一、CSS3 过渡:transition

    CSS3中,我们为了添加某种效果可以从一种样式转变到另一个的时候,无需使用Flash动画或JavaScript。

    IE10及以上浏览器支持。

    1、它是如何工作?

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

    要实现这一点,必须规定两项内容:

    • 指定要添加效果的CSS属性
    • 指定效果的持续时间。

    应用于宽度属性的过渡效果,时长为 2 秒:

    div
    {
        transition: width 2s;
        -webkit-transition: width 2s; /* Safari */
    }

    注意: 如果未指定的期限,transition将没有任何效果,因为默认值是0。

    指定的CSS属性的值更改时效果会发生变化。一个典型CSS属性的变化是用户鼠标放在一个元素上时:

    规定当鼠标指针悬浮(:hover)于 <div>元素上时:

    div:hover
    {
        width:300px;
    }

    尝试一下 »

    注意: 当鼠标光标移动到该元素时,它逐渐改变它原有样式

    2、多项改变

    要添加多个样式的变换效果,添加的属性由逗号分隔:

    添加了宽度,高度和转换效果:

    div
    {
        transition: width 2s, height 2s, transform 2s;
        -webkit-transition: width 2s, height 2s, -webkit-transform 2s;
    }

    尝试一下 »

    3、过渡属性

    下表列出了所有的过渡属性:

    下面的两个例子设置所有过渡属性:

    在一个例子中使用所有过渡属性:

    div
    {
        transition-property: width;
        transition-duration: 1s;
        transition-timing-function: linear;
        transition-delay: 2s;
        /* Safari */
        -webkit-transition-property:width;
        -webkit-transition-duration:1s;
        -webkit-transition-timing-function:linear;
        -webkit-transition-delay:2s;
    }

    尝试一下 »

    与上面的例子相同的过渡效果,但是使用了简写的 transition 属性:

    div
    {
        transition: width 1s linear 2s;
        /* Safari */
        -webkit-transition:width 1s linear 2s;
    }

    尝试一下 »

    二、CSS3 动画:animation

    CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的效果。

    1、CSS3 @keyframes 创建动画

    要创建 CSS3 动画,你需要了解 @keyframes 规则。

    @keyframes 规则是创建动画。

    @keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。

    IE10及以上浏览器支持。

    @keyframes myfirst
    {
        from {background: red;}
        to {background: yellow;}
    }
     
    @-webkit-keyframes myfirst /* Safari 与 Chrome */
    {
        from {background: red;}
        to {background: yellow;}
    }

    2、CSS3 动画绑定到选择器

    当在 @keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。

    指定至少这两个CSS3的动画属性绑定向一个选择器:

    • 规定动画的名称
    • 规定动画的时长

    把 "myfirst" 动画捆绑到 div 元素,时长:5 秒:

    div
    {
        animation: myfirst 5s;
        -webkit-animation: myfirst 5s; /* Safari 与 Chrome */
    }

    尝试一下 »

    注意: 您必须定义动画的名称和动画的持续时间。如果省略的持续时间,动画将无法运行,因为默认值是0。

    3、CSS3动画是什么?

    动画是使元素从一种样式逐渐变化为另一种样式的效果。

    您可以改变任意多的样式任意多的次数。

    请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。

    0% 是动画的开始,100% 是动画的完成。

    为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

    当动画为 25% 及 50% 时改变背景色,然后当动画 100% 完成时再次改变:

    @keyframes myfirst
    {
        0%   {background: red;}
        25%  {background: yellow;}
        50%  {background: blue;}
        100% {background: green;}
    }
     
    @-webkit-keyframes myfirst /* Safari 与 Chrome */
    {
        0%   {background: red;}
        25%  {background: yellow;}
        50%  {background: blue;}
        100% {background: green;}
    }

    尝试一下 »

    改变背景色和位置:

    @keyframes myfirst
    {
        0%   {background: red; left:0px; top:0px;}
        25%  {background: yellow; left:200px; top:0px;}
        50%  {background: blue; left:200px; top:200px;}
        75%  {background: green; left:0px; top:200px;}
        100% {background: red; left:0px; top:0px;}
    }
     
    @-webkit-keyframes myfirst /* Safari 与 Chrome */
    {
        0%   {background: red; left:0px; top:0px;}
        25%  {background: yellow; left:200px; top:0px;}
        50%  {background: blue; left:200px; top:200px;}
        75%  {background: green; left:0px; top:200px;}
        100% {background: red; left:0px; top:0px;}
    }

    尝试一下 »

    4、CSS3的动画属性

    下面的表格列出了 @keyframes 规则和所有动画属性:

    下面两个例子设置所有动画属性:

    运行myfirst动画,设置所有的属性:

    div
    {
        animation-name: myfirst;
        animation-duration: 5s;
        animation-timing-function: linear;
        animation-delay: 2s;
        animation-iteration-count: infinite;
        animation-direction: alternate;
        animation-play-state: running;
        /* Safari 与 Chrome: */
        -webkit-animation-name: myfirst;
        -webkit-animation-duration: 5s;
        -webkit-animation-timing-function: linear;
        -webkit-animation-delay: 2s;
        -webkit-animation-iteration-count: infinite;
        -webkit-animation-direction: alternate;
        -webkit-animation-play-state: running;
    }

    尝试一下 »

    与上面的动画相同,但是使用了简写的动画 animation 属性:

    div
    {
        animation: myfirst 5s linear 2s infinite alternate;
        /* Safari 与 Chrome: */
        -webkit-animation: myfirst 5s linear 2s infinite alternate;
    }

    尝试一下 »

  • 相关阅读:
    指数基金估值 明
    指数基金买入规则&卖出规则 明
    指数基金投资中的仓位管理也是可以量化的 明
    指数基金各类型资产配置权重 & 估值区间的划分 明
    指数基金建立底仓 明
    投资书单 明
    pug 接收nodejs 数据 转js对象
    git 常用
    Git代理设置:Cocoapods fatal: 无法访问,Connection refused
    iInput隐私政策
  • 原文地址:https://www.cnblogs.com/springsnow/p/12264284.html
Copyright © 2020-2023  润新知