Web中动画的实现方式
来源:互联网 发布:淘宝新店铺推广 编辑:程序博客网 时间:2024/05/22 11:51
JavaScript动画、jQuery动画、CSS动画
一、CSS动画
1. animation和@keyframes组合
“`
@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}
div
{
animation: myfirst 5s;
-moz-animation: myfirst 5s;/* Firefox */
-webkit-animation: myfirst 5s;/* Safari 和 Chrome */
-o-animation: myfirst 5s;/* Opera */
}
2.transition过渡
div
{
transition: width 1s linear 2s;
/* Firefox 4 */
-moz-transition:width 1s linear 2s;
/* Safari and Chrome */
-webkit-transition:width 1s linear 2s;
/* Opera */
-o-transition:width 1s linear 2s;
}
过渡属性
下面列出了所有的转换属性:
属性 描述
transition 简写属性,用于在一个属性中设置四个过渡属性。
transition-property 规定应用过渡的 CSS 属性的名称。 3
transition-duration 定义过渡效果花费的时间。默认是 0。
transition-timing-function 规定过渡效果的时间曲线。默认是 “ease”。
transition-delay 规定过渡效果何时开始。默认是 0。
transition-timing-function
值 描述
linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。
二、jQuery动画
借助jQuery动画相关的API方便地实现,如animate
三、JavaScript动画
1.requestAnimationFrame
来看MDN上对其给出的诠释:
The window.requestAnimationFrame() method tells the browser that you wish to perform an animation and requests that the browser call a specified function to update an animation before the next repaint. The method takes as an argument a callback to be invoked before the repaint.
window.requestAnimationFrame() 将告知浏览器你马上要开始动画效果了,后者需要在下次动画前调用相应方法来更新画面。这个方法就是传递给window.requestAnimationFrame()的回调函数。
也可这个方法原理其实也就跟setTimeout/setInterval差不多,通过递归调用同一方法来不断更新画面以达到动起来的效果,但它优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销。
基本语法
可以直接调用,也可以通过window来调用,接收一个函数作为回调,返回一个ID值,通过把这个ID值传给window.cancelAnimationFrame()可以取消该次动画。
requestAnimationFrame(callback)//callback为回调函数
Reference:
http://www.cnblogs.com/Wayou/p/requestAnimationFrame.html
http://www.ruanyifeng.com/blog/2015/09/web-page-performance-in-depth.html
http://www.cnblogs.com/Wayou/p/requestAnimationFrame.html
- Web中动画的实现方式
- web动画实现的多种方式
- android中帧动画的实现方式
- web动画的方式requestAnimationFrame
- android中动画实现的两种方式
- java swing中实现动画的两种方式。
- IOS中实现动画的三种方式
- Web页面中实现简单动画的一种方法
- WPF的动画实现方式
- IOS的动画实现方式
- Android实现动画的实现方式
- Web应用中使用SSL的实现方式
- 简单的方式实现动画效果
- 很巧妙的一组动画实现方式
- Citrus Engine实现动画的方式
- iOS 动画的实现方式和代码
- ios 实现动画的几种方式
- <UI>实现动画的若干种方式
- VS2012使用
- SSM整合
- Spring中BeanFactory和ApplicationContext的区别
- 互斥锁死锁状态详解
- 剑指offer-归并排序
- Web中动画的实现方式
- 子龙山人Learn Emacs in 21 Days: day 7 学习笔记
- Android_Handler源码分析
- 模拟MapReduce编程的程序案例(用于统计文本中单词出现频率)
- mybatis怎么接收返回的"select count(1)"sql数目
- 大数相加-Java版
- 群处守住嘴,独处守住心
- NSArray index beyond bounds error
- 182.m1-ActionBar1初识