0

0

CSS常用样式(四)之animation

php中文网

php中文网

发布时间:2016-08-18 08:58:00

|

1801人浏览过

|

来源于php中文网

原创

  上篇css常用样式(三)这篇博文中已经介绍过了css中具有动画效果的transition、transform,今天来大概说说css中的animation。animation的加入会使得动画效果更加乐观。

  animation

   animation的实现需要通过keyframes来实现。keyframes(关键帧),类似于flash当中的关键帧。关键帧有其自己的语法规则,他的命名是由"@keyframes"开头,后面紧接着是这个“动画的名称”加上一对花括号“{}”,括号中就是一些不同时间段样式规则,有点像我们css的样式写法一样。对于一个"@keyframes"中的样式规则是由多个百分比构成的,如“0%”到"100%"之间,我们可以在这个规则中创建多个百分比,我们分别给每一个百分比中给需要有动画效果的元素加上不同的属性,从而让元素达到一种在不断变化的效果,比如说移动,改变元素颜色,位置,大小,形状等。不过有一点需要注意的是,我们可以使用“fromt”“to”来代表一个动画是从哪开始,到哪结束,也就是说这个 "from"就相当于"0%"而"to"相当于"100%",值得一说的是,其中"0%"不能像别的属性取值一样把百分比符号省略,我们在这里必须加上百分符号(“%”)如果没有加上的话,我们这个keyframes是无效的,不起任何作用。因为keyframes的单位只接受百分比值。

  不同浏览器下的写法:  

内核类型 写法
Webkit(Chrome/Safari) -webkit-animation
Gecko(Firefox) -moz-animation
Presto(Opera)  
Trident(IE) -ms-animation
W3C animation

 

立即学习前端免费学习笔记(深入)”;

 

 

 

 

 

  属性说明:

 1、animation-name:检索或设置对象所应用的动画名称,必须与规则@keyframes配合使用。动画名可自由取,语义化的更好

 2、animation-duration:检索或设置对象动画的持续时间

 3、animation-timing-function:检索或设置对象动画的过渡类型

  取值:

  linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)

  ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 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)

  cubic-bezier(, , , ):特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内

 4、animation-iteration-count:检索或设置对象动画的循环次数

    取值:

网易人工智能
网易人工智能

网易数帆多媒体智能生产力平台

下载

    infinite:无限循环

    number:指定对象动画的具体循环次数

 5、animation-direction:检索或设置对象动画在循环中是否反向运动

    取值:

    normal:正常方向

    alternate:正常与反向交替

 6、animation-play-state:检索或设置对象动画的状态

    running:运动

    paused:暂停

 7、animation-fill-mode:检索或设置对象动画时间之外的状态

    取值:

    none:默认值。不设置对象动画之外的状态

    forwards:设置对象状态为动画结束时的状态

    backwards:设置对象状态为动画开始时的状态

    both:设置对象状态为动画结束或开始的状态

  下面举个例子综合说明:

  CSS代码:

    #animation
            {
                width: 250px;
                height: 250px;
                background-color: brown;
                opacity: 0.5;
                position:absolute;                
                left:40%;
                overflow: hidden;
                
            }
            #animation span
            {
                font-family: "微软雅黑";
                font-size: 20px;
                color: #ccc;
                opacity: 0;
                display: block;
                margin: 30px;
                
            }
            #text1:hover
            {
                -moz-animation-play-state:paused;/*鼠标经过时暂停动画*/
                -webkit-animation-play-state:paused;
                -o-animation-play-state:paused;
                -ms-animation-play-state:paused;
                animation-play-state:paused;

            }
            #text2:hover
            {
                -moz-animation-play-state:paused;
                -webkit-animation-play-state:paused;
                -o-animation-play-state:paused;
                -ms-animation-play-state:paused;
                animation-play-state:paused;

            }
            #text1
            {
                
                -webkit-animation-name:animation1;/*动画名称*/
                -webkit-animation-duration:4s;/*动画持续时间*/
                -webkit-animation-timing-function:ease-in;/*变化由慢到快*/
                -webkit-animation-delay: 2s;/*过了2S后开始动画*/
                -webkit-animation-iteration-count: infinite;/*设置动画无限播放*/
                -webkit-transform: translate(55px);
                
                animation-name:animation1;
                animation-delay: 4s;
                animation-timing-function: ease-in;
                animation-delay: 2s;
                animation-iteration-count: infinite;
                transform: translate(55px);
                
                -ms-animation-name:animation1;
                -ms-animation-duration:4s ;
                -ms-animation-timing-function: ease-in;
                -ms-animation-delay: 2s;
                -ms-animation-iteration-count: infinite;
                -ms-transform: translate(55px);
                
                -moz-animation-name:animation1;
                -moz-animation-delay:4s ;
                -moz-animation-timing-function: ease-in;
                -moz-animation-delay: 2s;
                -moz-animation-iteration-count: infinite;    
                -moz-transform: translate(55px);
            }
            #text2
            {
                -webkit-animation-name:animation2;/*动画名称*/
                -webkit-animation-duration:4s;/*动画持续时间*/
                -webkit-animation-timing-function:ease-in;/*变化由慢到快*/
                -webkit-animation-delay: 2s;/*过了2S后开始动画*/
                -webkit-animation-iteration-count: infinite;/*设置动画无限播放*/
                -webkit-transform: translate(60px);
                
                animation-name:animation2;
                animation-delay: 4s;
                animation-timing-function: ease-in;
                animation-delay: 2s;
                animation-iteration-count: infinite;
                transform: translate(60px);
                
                -ms-animation-name:animation2;
                -ms-animation-duration:4s ;
                -ms-animation-timing-function: ease-in;
                -ms-animation-delay: 2s;
                -ms-animation-iteration-count: infinite;
                -ms-transform: translate(60px);
                
                -moz-animation-name:animation2;
                -moz-animation-delay:4s ;
                -moz-animation-timing-function: ease-in;
                -moz-animation-delay: 2s;
                -moz-animation-iteration-count: infinite;    
                -moz-transform: translate(60px);        
                    
            }
            @-webkit-keyframes animation1
            {
                0%{-webkit-transform: translate(-10px);opacity: 0;}
                20%{-webkit-transform: translate(25px);opacity: 0.5;}
                45%{-webkit-transform: translate(45px);opacity: 1;}
                100%{-webkit-transform: translate(60px);opacity: 0.8;}
                
            }
            @-webkit-keyframes animation2
            {
                0%{-webkit-transform: translate(280px);opacity: 0;}
                30%{-webkit-transform: translate(200px);opacity: 0.5;}
                65%{-webkit-transform: translate(130px);opacity: 1;}                
                100%{-webkit-transform: translate(60px);opacity:0.8;}
            }

  HTML代码: 

<span id="text1">这是ly婠婠的博客span> <span id="text2">欢迎访问和评论!span> div>

效果如下:

解析说明:

在这个例子中,效果如上图。这里主要是利用animation和translate来达到一个文字渐进的效果。translate的作用是让文字根据给定值发生平移。animation则利用关键帧和百分比数值来将平移过程细分成几个帧,然后设置持续时间,一帧帧连接起来形成动画。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
JavaScript—极速入门
JavaScript—极速入门

共23课时 | 3.9万人学习

Web开发基础_HTML+CSS
Web开发基础_HTML+CSS

共17课时 | 3.8万人学习

麦子学院bootstrap入门视频教程
麦子学院bootstrap入门视频教程

共32课时 | 9.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号