Document Information

Last modified:
2008/06/30 21:44 by nick

Animation

This document is part of the qooxdoo 0.8 development process. The preliminary information provided here may not always be up-to-date. For implementation details please refer to the source code or demobrowser examples in the SVN trunk. Comments welcome!

This document collects some input for developing animation capabilities in qooxdoo 0.8. As qooxdoo 0.8 will include a fundamental low-level DOM layer that may be used instead of the full-featured GUI toolkit part, animation should be available for both regimes. This document currently focuses only on the low-level DOM implementation aspects of animation.

Corresponding bugzilla entries

Theory

Core effects

  • Fade: modifies opacity property
  • Move: modifies left and top properties
  • Resize: modifies width and height properties
  • Colorize: modifies the background color property

Status

qooxdoo animations

Qooxdoo animations is a port of Script.aculo.us to an offer low level layer. It contains the following effects:

  • Core effects:
    • qx.fx.effect.core.Fade
    • qx.fx.effect.core.Highlight
    • qx.fx.effect.core.Move
    • qx.fx.effect.core.Scale
    • qx.fx.effect.core.Scroll
    • qx.fx.effect.core.Parallell (helper effect)
  • Combination effects:
    • qx.fx.effect.combination.ColorFlow
    • qx.fx.effect.combination.Drop
    • qx.fx.effect.combination.Fold
    • qx.fx.effect.combination.Grow
    • qx.fx.effect.combination.Puff
    • qx.fx.effect.combination.Pulsate
    • qx.fx.effect.combination.Shake
    • qx.fx.effect.combination.Shrink
    • qx.fx.effect.combination.Switch

Possible enhancements

  • Generic effect: update() method must be overwritten to animate designated properties
  • Instead of one DOM element, give an array of element which should be animated simultaneously

Analysis of JavaScript animation APIs

Script.aculo.us

  • Core effects:
    • Appear: fade
    • Fold: resize
    • Highlight: fade
    • Pulsate: colorize
    • Shake: move
    • Squish: resize
  • Combination effects:
    • DropOut: move, fade
    • BlindUp: move, fade
    • BlindDown: move, fade
    • SlideUp: move, fade
    • SlideDown: move, fade
    • Grow: move, resize
    • Shrink: move, resize
    • Puff: move, fade, resize
    • SwitchOff: fade, position, resize

License: MIT

http://wiki.script.aculo.us/scriptaculous/show/CombinationEffects

Yahoo! UI Library

  • YAHOO.util.ColorAnim
  • YAHOO.util.Motion
  • YAHOO.util.Scroll

Effects, which can be added:

YAHOO.util.Easing

  • backBoth
  • backIn
  • backOut
  • bounceBoth
  • bounceIn
  • bounceOut
  • easeBoth
  • easeBothStrong
  • easeIn
  • easeInStrong
  • easeNone
  • easeOut
  • easeOutStrong
  • elasticBoth
  • elasticIn
  • elasticOut

License: BSD

http://developer.yahoo.com/yui/animation/

Mootools

  • Fx.Morph
  • Fx.Scroll
  • Fx.SlideIn
  • Fx.Style
  • Fx.Transitions

License: MIT

http://docs.mootools.net/Effects/Fx-Base.js

The Dojo Toolkit

  • DojoX FX
    • dojox.fx.sizeTo
    • dojox.fx.addClass
    • dojox.fx.removeClass
    • dojox.fx.toggleClass
    • dojox.fx.crossFade
    • dojox.fx.highlight
    • dojox.fx.slideBy
    • dojox.fx.smoothScroll
    • dojox.fx.easing
      • dojo.fx.easing.easeIn
      • dojo.fx.easing.easeInOut

License: BSD or AFL

http://redesign.dojotoolkit.org/?q=jsdoc/dojox/HEAD/object/dojox.fx http://dojo.jot.com/WikiHome/Animation

jQuery

  • Core effects:
    • slideDown: resize
    • slideToggle: resize
    • slideUp: resize
    • fadeIn: fade
    • fadeOut: fade
    • fadeTo: fade
    • hide: fade
    • show: fade
  • Custom effects:
    • animate: sets CSS properties to given values

Easing

  • linear
  • swing

License: MIT or GPL

http://docs.jquery.com/API/1.1/Effects/Animations

jsTween

jstween allows the following tweens:

  • motion tween
  • color tweens
  • opacity tweens

It includes a set of easing functions:

  • Tween.regularEaseIn
  • Tween.regularEaseOut
  • Tween.regularEaseInOut
  • Tween.strongEaseIn
  • Tween.strongEaseOut
  • Tween.strongEaseInOut
  • Tween.backEaseOut
  • Tween.backEaseIn
  • Tween.backEaseInOut
  • Tween.bounceEaseOut
  • Tween.bounceEaseIn
  • Tween.bounceEaseInOut
  • Tween.elasticEaseIn
  • Tween.elasticEaseOut
  • Tween.elasticEaseInOut

License: BSD

http://jstween.blogspot.com/

Facebook FBJS/Animation

Gapjumper

  • animation.add
  • animation.stop
  • animation.rotate (2D rotation)

Pre-built and custom acceleration/deceleration curves.

Supports referencing of target elements via XPath.

License: Creative Commons 3.0: BY NC ND

http://www.gapjumper.com

Miscellaneous

CSS Animation

  • Transition

Currently only supported by Webkit based browsers.

Information

Last modified:
2008/06/30 21:44 by nick

Account

Not logged in

 
 

Job Offers

To further improve qooxdoo we are seeking javascript developers. Read more...

Rich Ajax Platform (RAP)

RAP uses qooxdoo, Java and the Eclipse development model to build rich web applications. Read more...

qooxdoo Web Toolkit (QWT)

Similar to GWT this framework allows to create impressive qooxdoo applications just using Java. Read more...

Pustefix

Pustefix is a MVC-based web application framework using Java and XML/XSLT. Read more...

 
SourceForge.net Logo

Bad Behavior has blocked 0 potential spam attempts in the last 7 days.