分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

33.CSS3动画效果

发布时间:2023-09-06 01:44责任编辑:胡小海关键词:CSS动画

                                                第二十六章  CSS3动画效果

一、动画简介

        CSS3提供了类似Flash关键帧控制的动画效果,通过animation属性实现。之前学的transform属性只能通过指定属性的初始状态和结束状态实现动画效果,有一定局限性。

        animation实现动画效果有两个部分组成

         1、通过类似Flash动画中的关键帧声明一个动画

         2、在animation属性中调用关键帧声明的动画

        CSS3提供的animation是一个复合属性,它包含多种子属性,如下

                属性                    说明

          animation-name               用来指定一个关键帧动画的名称,这个动画名必须对应一个@keyframes规则CSS加载时会应用animation-mame指定动画,从而执行动画

          animation-duration           用来设置动画播放时间

          animation-timing-function    用来设置动画播放方式

          animation-delay              用来指定动画的延迟时间

          animation-iteration-count    用来指定动画播放的循环次数

          animation-direction          用来指定动画的播放方向

          animation-play-state         用来控制动画的播放状态

          animation-fill-mode          用来设置动画的时间外属性

          animation                    以上的简写形式

        除了这9个属性外,还有一个重要的属性,就是关键帧属性,@keyframes,他的作用是声明一个动画,然后在animation调用关键帧声明动画。

              //基本格式,"name"可自定义

                   @keyframes name{

                       /*......*/

                   }

二、属性详解

         在讲解动画属性之前,先创建一个基本的样式  //一个div属性

         <div>我是HTML5</div>

         //设置CSS

           div{

        width:200px;

        height:200px;

        background-color: white:

        border:1px solid green;

            }

       

          1、@keyframes       创建动画的第一步,先声明一个动画关键帧

           @keyframes myani{

        0%{

    background-color: white;

    margin-left:100px;

        }

        50%{

    background-color: black;

    margin-left :100px;

        }

                100%{

    background-color: white;

    margin-left:100px;

        }

             }

         也可以合并到一起

             @keyframes myani{

        0%,100%{

    background-color: white;

    margin-left:100px;

        }

        50%{

    background-color: black;

    margin-left :100px;

        }

              }

          也可以写成

      form{                  //起始

   background-color: white;

   margin-left:100px;

        }

      to{                    //终点

   background-color: black;

   margin-left :100px;

      }

          2、animation-name   //调用@keyframes动画

               animation-name:myani;

            属性值                 说明

            none            默认值,没有指定任何动画

            INDEX           是由@keyframes指定创建的动画名称

          3、animation-duration   //设置动画播放时间

                animation-duration:1s;

          4、animation-timing-function        //设置缓动

                animation-timing-function:ease-in;

            属性值                说明

            ease       默认值,元素样式从初始状态过渡到种植状态时速度由快到慢,等同于贝塞尔曲线(0.25,0.1,0.25,1.0)

            linear     。。速度恒定,贝塞尔曲线(0.0,0.0,1.0,1.0)

            ease-in  : 。。。。速度越来越快,贝塞尔曲线(0.42,0,1.0,1.0)

            ease-out : 。。。。速度越来越慢,贝塞尔曲线(0,0,0.58,1.0)

            ease-in-out :。。。先加速,后减速。贝塞尔曲线(0.42,0,0.58,1.0)

          5、animation-delay    //设置延迟的时间

          6、animation-iteration-count        //设置循环次数

              属性值                说明

              次数             默认值为1

              infinite         表示无限次循环

          7、animation-direction       //设置缓动方向交替

              属性值                说明

             normal         默认值,每次播放向前

             alternate      一次向前,一次向后相互交替

          8、animation-play-state      //设置停止播放画面

               animation-play-state:paused;

          9、animation-fill-mode       //设置结束后不返回

                属性值

               none           默认值,表示按预期进行和结束

               forward        动画结束后继续应用最后关键帧位置,即不返回

               backforwards   动画结束后迅速应用起始关键帧位置,即返回

               both           根据情况产生forwords或backforwords的效果

六、简写和版本

     //简写形式完整版

           animation:myani 1s ease 2 alternate 0s both;

       为了兼容旧版本,需要加上浏览器前缀

                             Opera       Firefox     Chrome    Safari    IE

         支持需带前缀        15~29       5~15      4~42      4~8     无

         支持不带前缀          无          16+         43+       无      10.0+

  

      //兼容完整版,Opera在这个属性上加入webkit,所以没有-o-

           -webkit-animation:myani 1s ease 2 alternate 0s both;

           -moz-animation:myani 1s ease 2 alternate 0s both;

           -ms-animation:myani 1s ease 2 alternate 0s both;

           transition:all 1s ease 0s;

      //@keyframes 也需要加上前缀

        -webkit-keyframes myani{...}

        -moz-keyframes myani{...}

        -o-keyframes myani{...}

        -ms-keyframes myani{...}

        keyframes myani{...}

例、

@charset "utf-8"

body{

margin:100px;

}

div{

width:200px;

height:200px;

background:white;

border:1px solid green;

animation-name: myani;

animation-duration: 1s;

animation-timing-function:ease-in;

/*animation-delay: 1s;*/

/* animation-iteration-count: infinite;*/

}

@keyframes myani{

0%,100%{

background-color: white;

margin-left:0px;

}

50%{

background-color: black;

margin-left :100px;

}

/* form{

background-color: white;

margin-left:100px;

}

to{

background-color: black;

margin-left :100px;

}*/

}

33.CSS3动画效果

原文地址:https://www.cnblogs.com/keshuai752100461/p/8485230.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved