宝哥软件园

javascript框架动画(示例说明)

编辑:宝哥软件园 来源:互联网 时间:2021-09-03

前面的话

帧动画是将动画动作分解为“连续关键帧”的动画,即在时间轴的每一帧上逐帧绘制不同的内容并连续播放。因为是逐帧绘画,所以帧动画有很大的灵活性,几乎可以表达任何你想要的东西。本文将详细介绍javascript框架动画

摘要

[分类]

框架动画有三种常见的方式,包括gif、CSS3动画和javascript

Git和CSS3动画无法灵活控制动画的暂停和播放,也无法更灵活地展开帧动画。此外,gif不能捕捉动画完成的事件。因此,一般使用javascript来实现帧动画

[原则]

js实现帧动画有两种方法

1.如果有多帧动画图片,您可以使用图像标签来携带图片,并定期更改图像的src属性(不推荐)

2.在一张图片中绘制所有动画关键帧,将图片作为元素的背景图像,并定期更改元素的背景位置属性(推荐)

因为第一种方法需要使用多个HTTP请求,所以通常建议使用第二种方法

[示例]

以下是使用帧动画的示例

Div id=' rabbit'/div按钮id=' BTN '暂停移动/button script var URL=' rabbit-big . png ';var positions=['0,-854 ','-174 -852 ','-349 -852 ','-524 -852 ','-698 -852 ','-873-848 '];var ele=document . getelementbyid(' rabbit ');var oTimer=nullBTN . onclick=function(){ if(BTN . innerhtml=='开始移动'){帧动画(ele,positions,URL);Btn.innerHTML='暂停移动';} else { cleartime out(oTimer);Btn.innerHTML='开始锻炼';} }frameAnimation(ele,positions,URL);function frameAnimation(ele,positions,URL){ ele . style . background image=' URL(' URL ')';ele . style . background repeat=' no-repeat ';var索引=0;函数run(){ var pos=positions[index]。拆分(“”);ele . style . background position=pos[0]“px”pos[1]“px”;指数;if(index=positions . length){ index=0;} oTimer=setTimeout(运行,80);} run();}/脚本通用帧动画

让我们设计一个通用的框架动画库

[需求分析]

1.支持图像预加载

2.支持两种动画播放模式,自定义每一帧动画

3.支持一组动画来控制循环时间(可以支持无限次数)

4.支持完成一组动画并继续下一组动画

5.支持每个动画完成后的等待时间

6.支持动画暂停和继续播放

7.动画完成后支持回调函数

[编程接口]

1.loadImage(imglist)//预加载图片

2.改变位置(元素、位置、图像)//通过改变元素的背景位置来实现动画

3.通过改变图像元素的Src

4.enterFrame(回调)//每个帧动画执行的功能相当于用户可以为每个帧动画定制的回调

5.重复次数//动画重复的次数。当时间是空的,它意味着无限的时间。

6.repeatForever()//无限重复最后一个动画,相当于repeat()

7.等待(时间)//每次动画执行完成后等待的时间

8.然后(回调)//动画执行完成后的回调函数

9.开始(间隔)//动画开始执行,间隔表示动画执行的间隔

10.暂停()//动画暂停

11.restart()//从最后一次暂停开始重新执行动画

12.dispose()//释放资源

[调用方法]

支持链式调用,用动词描述接口

[代码设计]

1.预加载图片-

更多资讯
游戏推荐
更多+