• Stars
    star
    318
  • Rank 131,872 (Top 3 %)
  • Language
    JavaScript
  • Created almost 11 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

an common animation lib

animation

npm

例子在这里

通常我们会遇到一些需求,用js实现一组动画(这里指的是由一帧帧图片组合而成的动画,非jq的animate)。

其实原理很简单,如果是多张图,就定时去改变image的src,如果是一张图,就定时改变backgroud-position;同时,我们还要支持图片预加载,动画执行次数(一次,n次,无限次),动画暂停,动画执行完成的回调等等。

有了上述需求,我觉得写一个通用的animation库还是很有必要的,这样用户就每必要为每一组动画写逻辑了,从繁琐的劳动中解放,不正是每个coder所期望的么:)

Usage

npm 安装

$ npm install frame-animation

示例

HTML

<div id="demo"></div>

CSS

#demo {
    width: 100px;
    height: 100px;
    background: url('foo.png');
}

JavaScript

var animation = require("frame-animation");

var ele = document.getElementById('demo');
var frameMap = ['0 0', '0 -100', '0 -200'];
    
var demoAnimation = animation().changePosition(ele, positions).repeat();
    demoAnimation.start(200);

这种链式调用的语法,是不是很爽呢(妈妈再也不用担心我的动画)

animation提供的接口

  • loadImage(imagelist) //预加载图片
  • changePosition(ele,positions) //通过改变元素的backgroud-position实现动画
  • changeSrc(ele,imglist) //通过改变image元素的src实现动画(一般这种方式需要和loadImage配合使用)
  • then(callback) //动画执行完成后的回调函数
  • enterFrame(callback) //每一帧动画执行的函数,相当于用户可以自定义每一帧动画的callback
  • repeat(times) //动画重复执行的次数,times为空时表示无限次
  • repeatForever() //无限重复上一次动画, 相当于repeat(),更友好的一个接口吧
  • wait(time) //每个动画执行完后等待的时间
  • start(interval) //动画开始执行,interval表示动画执行的间隔
  • pause() //动画暂停
  • restart() //动画从上一次暂停处重新执行
  • dispose() //释放资源

如何构建

animation的源码是基于webpack构建的

首先,clone项目源码

git clone https://github.com/ustbhuangyi/animation.git

安装依赖

cd animation
npm install

测试demo页

npm run dev

打开浏览器访问如下地址, 查看效果

localhost:9090

More Repositories

1

better-scroll

📜 inspired by iscroll, and it supports more features and has a better scroll perfermance
TypeScript
16,468
star
2

vue-analysis

👍 Vue.js 源码分析
JavaScript
7,536
star
3

vue-sell

🍚 Vue.js高仿饿了么外卖App课程源码 http://coding.imooc.com/class/74.html
Vue
3,451
star
4

picker

[警告]该库作者不再维护,picker 的维护移交至 cube-ui
JavaScript
861
star
5

lyric-parser

lyric-parser base on javascript
JavaScript
520
star
6

storage

a storage lib which support sessionStorage and localStorage with the same api
JavaScript
472
star
7

vue3-lazy

Lazy load plugin for Vue 3.x
TypeScript
204
star
8

resume

My resume implement by Vue.js
JavaScript
201
star
9

vue-3.x-demos

Demos implement by vue 3.x
TypeScript
96
star
10

time-picker

a time picker which experience like IOS written by javascript
JavaScript
54
star
11

FunnyRabbit

基于Cocos2djs开发的有趣的兔子接月饼小游戏
JavaScript
44
star
12

Cocos2djs-2048

基于cocos2djs 引擎实现的2048小游戏
JavaScript
38
star
13

Proxy-vs-DefineProperty

Proxy and Objet.defineProperty performance comparison.
JavaScript
14
star
14

gulp-her-webapp

基于gulp编译工具和smarty plugin开发的一套前端集成解决方案
PHP
14
star
15

vue-picker

Vue picker for mobile webapp, inspired by ios UIPickerView
JavaScript
13
star
16

vue2.0-resource

收集整理所有和vue2.0相关的资源
9
star
17

slotMachine

a slotMachine base on jQuery ui widget
JavaScript
9
star
18

gulp-inline-js

在js文件中嵌入其它js文件,支持递归嵌入
JavaScript
4
star
19

ustbhuangyi

About me
3
star
20

vue3-keep-alive-issue

Sub RouterView component will render multiple times when using with KeepAlive
Vue
3
star
21

SortAlgorithm

sort algorithm via js
JavaScript
2
star
22

ball-test

A Drop Ball Demo with BUG
Vue
1
star
23

vue-test-utils-demo

Demo of https://github.com/vuejs/vue-test-utils/pull/1716
Vue
1
star