html5中动画总结,前端动画总结

导言

之前一直没有总结一下关于前端学习到的动画该怎么实现,这篇文章帮我自己总结一下。

基本概念

在学习动画之前, 我们得先了解一下关于动画的基本概念.

帧: 帧是动画的最小单位,一帧也就是一张图片,连续的帧就形成动画。

帧数: 帧数就是在 1秒钟时间内传输的图片的多少。通常使用 FPS 表示。据说浏览器 60FPS是最好的。

帧时长: 即每一帧静止画面的停留时间,单位一般是ms(毫秒)。 1000 / 60 = 16.666 ms

实现方式

通过,我们前端实现动画有以下几种方式:

js : 通过定时器( setTimeout , setlterval)来间隔改变元素样式。 或者使用 requestAnimationFrame

css3 : tranistion 和 animation

html5 : 使用 H5 提供的绘图方式 (canvas , webgl, svg)

requestAnimationFrame

requestAnimation可以说是为 动画量身打造的 setTimeout, 不同的是, requestAnimationFrame 是跟着浏览器内建的刷新频率来执行回调函数,这就是浏览器实现动画的最佳效果。

style="position: absolute;width: 100px;height: 100px;background-color: #ccc;left: 0;top: 0;">

var demo = document.getElementById('demo');

function reader() {

demo.style.left = parseInt(demo.style.left) + 100 + 'px';// 每一帧向右移动1px

}

var requestID = requestAnimationFrame(function() {

reader();

// 当超过300px 后才停止

if(parseInt(demo.style.left) > 1300) demo.style.left = 0;

requestAnimationFrame(arguments.callee);

})

复制代码

Transition

CSS中的 transition 属性允许块级元素中的属性在指定的时间内平滑的改变,简单看下语法规则:

transition : property duration timing-function delay

复制代码

具体属性值介绍如下:

描述

transition-property

规定设置过渡效果的CSS属性的名称。(none/all/property)

transition-duration

规定完成过渡效果需要多少秒或者毫秒

transition-timing-function

规定速度效果的速度曲线

transition-delay

定义过渡效果何时开始。

.demo {

width: 100px;

height: 100px;

background-color: blue;

transition: width 1s ease ;

}

.demo:hover {

width: 300px;

}

复制代码

animation

类似于 transition ,CSS还提供了一个 animation 属性 ,不过区别于 transition , animation 作用于元素本身而不是样式属性, 可以使用关键帧的概念 , 更加强大。

animation : name duration timing-function delay iteration-count direction

复制代码值

描述

animation-name

规定需要绑定到选择器的keyframe 名称

animation-duration

规定完成动画所花费的时间,以秒或毫秒

animation-timing-function

规定动画的速度曲线。

animation-delay

规定在动画开始之前的延迟

animation-iteration-count

规定动画应该播放的次数

animation-direction

规定是否应该轮流反向播放动画。(normal,alternate)

.demo {

width: 100px;

height: 100px;

background-color: red;

position: relative;

animation: mymove 5s infinite;

}

@keyframes mymove {

from {

left: 0px;

}

to {

left: 200px;

}

}

复制代码

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[前端动画总结]http://www.zyiz.net/tech/detail-143275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值