GithubHelp home page GithubHelp logo

layer-anim's Introduction

分层动画组件(LayerAnim)

作者:阿古

你还在为某些动画效果的实现而绞尽脑汁吗?

手头的组件做不出自己想要的效果?

现有的组件难以使用?

对浏览器兼容性问题一筹莫展?

有了LayerAnim,这些都已不再是问题!

LayerAnim是什么

LayerAnim Logo

组件首页:http://gallery.kissyui.com/layer-anim/1.1/guide/index.html

LayerAnim是一个专业级javascript动画组件,其强大之处在于:

  • 创建分层动画(与Flash类似)

  • 随意定制各个分层动画的播放顺序

  • 支持无限重复播放动画,甚至以相反顺序重复播放

  • 精确的回放控制(如:反向播放、重新播放、从特定时间点开始播放等)

  • 支持CSS 3(如:rotation)

  • 支持延迟播放动画

  • 多种可配置的过渡效果(easing)

  • 自定义各浏览器的优雅降级

  • 动态添加/删除动画

  • 兼容所有浏览器(包括古老的IE6)

  • 简单的配置参数(易于学习、易于使用)

注:LayerAnim基于GreenSock JS(以下简称GSAP)动画库开发。

为什么选择LayerAnim

随着众多动画组件及CSS 3的出现,做动画早已不是什么难事。但这些组件是否易于使用?做出的效果是否令人满意?恐怕只有使用时,才能发现存在的问题。

让我们来看看LayerAnim:

  • 性能出众

    • LayerAnim比目前流行的动画组件性能都高,这里有各个动画组件的性能比较(其中GSAP即LayerAnim使用的GreenSock动画库)。可以看出,GSAP比jQuery快近20倍。

    • 即便与CSS3 transition相比,LayerAnim在多数情况下也较快。这是因为并非所有transition都会启用硬件加速。对于未启用硬件加速的动画,LayerAnim总是更胜一筹。

  • 功能完善

    • 使用LayerAnim可以做出与Flash同样复杂的分层动画,例如,为每个动画层分别设置起始播放时间、延迟时间等,可以顺序播放,也可以同时播放,而这些只需要通过简单的配置参数即可完成。

    • LayerAnim支持对每个CSS属性分别设置不同的动画效果。例如:对“rotation”和“scale”分别设置不同的动画时长,而在CSS中,这是无法实现的。因为“rotation”和“scale”都属于“transform”属性,所以无法针对某个值单独设置动画效果。

    • LayerAnim不仅可基于DOM节点属性做动画,还可基于任意JS对象属性/方法做动画。这是CSS和其它动画组件所不具备的。

    • 动画的起始值(from)为百分比(%),结束值(to)为像素(px),可以么?没问题!LayerAnim都能支持。

    • 如果多个动画都作用于同一DOM节点,其设置的CSS属性相互冲突,怎么办?LayerAnim可以帮你搞定这一切。

    • LayerAnim还提供了多种回放控制,支持暂停、继续、反向播放、重新播放,甚至跳到某一时刻开始播放。

  • 自动解决浏览器兼容问题

    • 对于高级浏览器,LayerAnim使用3D transform。对于低级浏览器(如:IE6),LayerAnim会自动使用filter来代替,因此,IE6也可以支持rotation, scale, skew等。

    • 无需写冗长的浏览器厂商前缀,例如:-ms-、-moz-、-webkit-、-o-等等,LayerAnim会自动帮你加上。

    • LayerAnim已对众多浏览器的Bug进行了处理,让那些令人头疼的问题见鬼去吧。

LayerAnim探秘

LayerAnim基于时间轴(Timeline)来实现分层动画,与Flash中的时间轴概念相同。

时间轴

所有动画层都基于时间轴来创建。因此,可以很容易地实现复杂的动画序列,同时,基于时间轴,也可以精确控制动画的播放、暂停、跳转,甚至反向播放等。

进一步了解LayerAnim

更新历史

  • v1.1

    • 支持重复播放动画(repeat),可无限重复
    • 每次重复播放的时间间隔(repeatDelay)
    • 重复播放时,是否以相反顺序播放(yoyo)
    • 多个动画以一定间隔时间播放(stagger)
    • 支持动画开始播放事件(start)、每帧动画更新事件(update)
    • 修改run()方法参数,支持从时间点开始播放
  • v1.0

    • 支持基本动画参数(from, to, duration, easing)
    • 定制各个分层动画的播放顺序(align)
    • 延迟播放(delay)
    • 解决动画属性冲突(overwrite)
    • 浏览器降级设置(degrade)
    • 动画播放完毕事件(end)

layer-anim's People

Contributors

blueaqua2000 avatar kissygallery avatar minghe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.