• 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- 格式类似 */
  • 相关阅读:
    Java 字节码解释说明
    JVM垃圾回收:G1回收器
    JVM 参数
    HotSpot 虚拟机对象探秘
    JDK 内置图形界面工具
    Java 内存模型
    在网络设备上调试 Android 程序
    .NET MVC异步调用中的Session问题
    在MVC的ApiController中实现统一校验
    使用 AndroidX86 在虚拟机中作为调试设备
  • 原文地址:https://www.cnblogs.com/zhishiyv/p/15905799.html
Copyright © 2020-2023  润新知