前言

在没有接触js之前,大家使用HTML和CSS做出来的页面都是静态页面,久而久之,静态页面显得非常的无趣,已经无法满足大家的需求了,就会开始有很多新鲜的idea,比如我想让hover鼠标悬停事件变得更有趣,我想让图片动起来,我想做一个会动的页面,那么不使用js可不可以做呢?答案是必须的~
那么今天为大家带来的是动画animationn,可以满足大家一些简单的动态要求。

简单介绍

Animations由两部分组成:css动画的配置,以及一系列的keyframes(用来描述动画的开始、过程、结束状态)。不需要了解任何Js技术即可完成动画的制作。
下面先介绍玩animation的属性之后,再给大家带来一个案例 ,更清晰的了解animation的用法。

属性:

  • @keyframes
  • animation-name
  • animation-duration
  • animation-timing-function
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • anmiation-fill-mode
  • animation-play-state
  • animation连写

@keyframes

首先我们需要先设置动画序列**@keyframes**,序列中每个关键帧描述动画元素在动画序列的特定时间内如何渲染。关键帧使用了一个百分比来表示在动画序列中出现的时间。0%表示动画的初始时间,也可以通过from关键字表示。100%表示动画的结束时间,也可以通过to关键字表示。

 /* 第一种方式:0% -> 100% */@keyframes animiationName {0% {css-style}50% {css-style}100% {css-style}}

这里不一定只能是我写的0% 50% 100%而已,亦可以10% 25% 75%等

  /* 第二种方式:from -> to */@keyframes animiationName {from {css-style;}to {css-style;}}

而是用from to方式,就是固定from to两个变化了,相当于从0到100的变化。如果需要细微变化的话使用第一种方式,不然的话第二种也够用了。

animation-name

指定要绑定到选择器的关键帧的名称,告诉系统需要执行哪个动画。告诉系统我们需要自己创建一个名称叫做animiationName的动画,也即是我们刚才@keyframes创建的animationName。

 /* 第二步:animation-name 指定要绑定到选择器的关键帧的名称,告诉系统需要执行哪个动画 */animation-name: animationName;
animation-duration

动画指定需要多少秒或毫秒完成,告诉系统动画持续的时间
time指定动画播放完成花费的时间。默认值为 0,意味着没有动画效果。

  /* -animation-duration 动画指定需要多少秒或毫秒完成,告诉系统动画持续的时长 *//* 持续动画时间 */animation-duration: 1s;animation-duration: 5s;

animation-timing-function

设置动画将如何完成一个周期,告诉系统动画执行的速度

​ linear 动画从头到尾的速度是相同的。
​ ease 默认。动画以低速开始,然后加快,在结束前变慢。
​ ease-in 动画以低速开始。
​ ease-out 动画以低速结束。
​ ease-in-out 动画以低速开始和结束。
​ cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

 /* -animation-timing-function 设置动画将如何完成一个周期,告诉系统动画执行的速度 */animation-timing-function: linear;animation-timing-function: ease;animation-timing-function: ease-in;animation-timing-function: ease-in-out;animation-timing-function: ease-out;

animation-delay

设置动画在启动前的延迟间隔。

​ time 可选。定义动画开始前等待的时间,以秒或毫秒计。默认值为0

 /* -animation-delay  设置动画在启动前的延迟间隔。 */animation-delay: 0.5s;

animation-iteration-count

定义动画的播放次数。告诉系统动画需要执行几次
​ n 一个数字,定义应该播放多少次动画
​ infinite 无限次往返执行

            /* 定义动画的播放次数。告诉系统动画需要执行几次 *//* 无限次  infinite*/animation-iteration-count: infinite;/* 循环五次 */animation-iteration-count: 5;

animation-direction

指定是否应该轮流反向播放动画。

​ normal 默认的取值, 执行完一次之后回到起点继续执行下一次
​ alternate 往返动画, 执行完一次之后往回执行下一次
​ reverse 反向执行

         /*指定是否应该轮流反向播放动画。 *//* 默认的取值, 执行完一次之后回到起点继续执行下一次 */animation-direction: normal;/* 往返动画, 执行完一次之后往回执行下一次 */animation-direction: alternate;/* 反向执行  */animation-direction: reverse;

animation-fill-mode

规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
​ none: 不做任何改变
​ forwards: 让元素结束状态保持动画最后一帧的样式
​ backwards: 让元素等待状态的时候显示动画第一帧的样式
​ both: 让元素等待状态显示动画第一帧的样式, 让元素结束状态保持动画最后一帧的样式

  /* 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 *//* 让元素结束状态保持动画最后一帧的样式 */animation-fill-mode: forwards;

animation-play-state

告诉系统当前动画是否需要暂停,这个通常要需要与其他事件一起使用,比如鼠标悬停时选择暂停或播放。

​ running: 执行动画
​ paused: 暂停动画

animation-play-state: paused;
animation-play-state: running;

animation连写

animation:动画名称(animation-name) 动画时长(animation-duration) 动画运动速度(animation-timing-function) 延迟时间(animation-delay) 执行次数(animation-iteration-count) 往返动画(animation-direction);

/* 举例子 */
animation-name: leftTopRight;
animation-duration: 1s;
animation-timing-function: linear;
animation-delay: 0.5s;
animation-iteration-count: 3;
animation-direction: alternate;
animation-fill-mode: forwards;
将上面的属性连写 即是:
animation:leftTopRight 1s linear 0.5s 3 alterate forwards

接下来给大家带来一个案例:方块向左来回循环移动。
(由于无法放视频和动图,所以效果大家自行运行起来看一下辣~)
代码奉上:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>animation</title><style>div {width: 100px;height: 100px;background-color: cyan;/* 第二步:animation-name 指定要绑定到选择器的关键帧的名称,告诉系统需要执行哪个动画 */animation-name: leftTopRight;/* -animation-duration   动画指定需要多少秒或毫秒完成,告诉系统动画持续的时长 *//* 持续动画时间 */animation-duration: 2s;/* -animation-timing-function 设置动画将如何完成一个周期,告诉系统动画执行的速度 */animation-timing-function: linear;/* -animation-delay  设置动画在启动前的延迟间隔。 */animation-delay: 0.5s;/* -animation-iteration-count 定义动画的播放次数。告诉系统动画需要执行几次 *//* 无限次  infinite*/animation-iteration-count: infinite; /* -animation-direction 指定是否应该轮流反向播放动画。 *//* 默认的取值, 执行完一次之后回到起点继续执行下一次 *//* 往返动画, 执行完一次之后往回执行下一次 */animation-direction: alternate;/* -animation-fill-mode   规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 *//* 让元素结束状态保持动画最后一帧的样式 */animation-fill-mode: forwards;}div:hover {/* -animation-play-state 告诉系统当前动画是否需要暂停 *//* 鼠标悬停,暂停 */animation-play-state: paused;}/* 第一步:新建动画的关键帧 */@keyframes leftTopRight {/* 0%{}50%{}100%{} *//* 0% -> 100% */from {margin-left: 0;width: 100px;background-color: cyan;}to {margin-left: 500px;width: 200px;background-color: darkblue;}}</style>
</head><body><div></div>
</body></html>

HTML-动画实现Animation相关推荐

  1. 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果

    AlphaAnimation 透明效果实现: activity_main.xml中仅仅是一个简单的图片,下面的例子都会使用这个xml: <RelativeLayout xmlns:android ...

  2. 【Android 属性动画】属性动画 Property Animation 与 视图动画 View Animation 区别

    文章目录 一.动画效果添加对象 二.动画效果类型 三.动画效果与实际属性 四.开发复杂程度 属性动画 Property Animation 可以为 任何对象 ( View 对象 / 非 View 对象 ...

  3. Android动画开发——Animation动画效果

    动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...

  4. 1分钟深入了解CSS3的动画属性animation

    拖好久的animation-温馨提示,先看效果,代码附在讲解后 上篇说到@keyframe可以定义动画,animation就是将@keyframe所定义好的动画添加在元素身上. animation可以 ...

  5. [微信小程序] 当动画(animation)遇上延时执行函数(setTimeout)出现的问题

    小程序中当动画animation遇上setTimeout函数内部使用this.setData函数,通常情况下会出现报错.本文先告诉解决方法,后分析报错原因 1.解决方法: 在 setTimeout() ...

  6. java运用ascii实现动画效果_安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果...

    AlphaAnimation 透明效果实现: activity_main.xml中仅仅是一个简单的图片,下面的例子都会使用这个xml: xmlns:tools="http://schemas ...

  7. iOS 核心动画 Core Animation浅谈

    代码地址如下: http://www.demodashi.com/demo/11603.html 前记 关于实现一个iOS动画,如果简单的,我们可以直接调用UIView的代码块来实现,虽然使用UIVi ...

  8. iOS核心动画Core Animation(一)

    核心动画Core Animation(一) 一.简述 Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core ...

  9. Android 属性动画Property Animation(中)

    Android 属性动画Property Animation(上)介绍了属性动画的概念以及相关的类和接口,本篇来看下具体肿么使用. ValueAnimator ValueAnimator指定整形.浮点 ...

  10. Unity 游戏入门 九、 精灵动画 Sprite Animation

    1.Animator 为了在游戏对象上有动画,需要添加一个组件Animator. 在工程窗口中,双击Robot  预制体. 如图所示,添加Animator组件. 2.Creating a New Co ...

最新文章

  1. 在Ubuntu上为Android系统编写Linux内核驱动程序
  2. python学习笔记之常用模块用法分析
  3. 螺旋矩阵 IIPython解法
  4. 鹅厂后台开发工程师的工作日常
  5. linux系统嵌入式编译环境,Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解...
  6. Mdi悬浮子窗体不超过主窗体边界
  7. python文件夹目录_Python 操作文件、文件夹、目录大全
  8. 两个简单的Demo示例向读者展示Flash和ASP.NET交互原理以及过程
  9. Winform开发框架中工作流模块的动态处理
  10. 200 行代码实现一个滑动验证码
  11. 设计灵感|纯文字排版也能让海报引人注目
  12. PHP mcrypt可逆加密算法分析
  13. Spring学习笔记之基础、IOC、DI(1)
  14. android4.0.3校准屏幕和隐藏statusbar
  15. S3C2410 通用异步收发UART 串口通信
  16. steam pipeGUI
  17. mac系统开机启动项
  18. JS基础-事件模型(事件事件流自定义事件事件冒泡/代理)
  19. 面试官通用面试问题---------------经典回答
  20. mysql dbms是什么_数据库管理系统(DBMS)是用来做什么的?

热门文章

  1. 16条Macbook苹果电脑保养方法手册
  2. 一文帮你彻底搞清公有云、私有云、混合云
  3. 食之无味?App Startup 可能比你想象中要简单
  4. 蓝屏含义原理分析处理方法代码电脑计算机故障系统安全 - 蓝屏知识大全
  5. Python的 global 到底干嘛的?
  6. idea中groupid、artifactId、Version的意思
  7. SSI--什么是SHTML?
  8. Cocos2dx 基础 核心概念 (1)
  9. cocos2dx中的内存管理
  10. java毕业设计NBA论坛系统Mybatis+系统+数据库+调试部署