GitHub

Laser-precision animation sequencing & timing

Why?

  • Precise Sequencing
  • Rewind, Pause, and Resume Sequence
  • Automatic jQuery Element caching
  • CSS3 Animations
  • Event Emitter based vs. callback approach
  • Strong Debugging output with millisecond timeline/sequence count

Tested Compatibility:

  • IE10+
  • Chrome 27+
  • Safari 6+
  • Firefox 21+

Dependencies:

Usage

JavaScript

$(function() {
  'use strict';
  // create new sequence with logging (DEBUG : true)
  var demoSequence = new Laser({
    DEBUG : true
  })
  // on complete log id of completed animation
  .on('animation:completed', function(animation) {
    this.log('completed animation %s', animation.id);
  })
  // on complete, rewind
  .on('sequence:completed', function(elapsed) {
    this.rewind();
    this.off('sequence:completed');
  })
  // custom easing method
  .addEasing('bounceOut', 'cubic-bezier(.33,1.66,.08,-1.71)')
  // add animations to sequence
  .add('.box', { left : 500 }, { duration : 750, when : 500  })
  .add('.box', { top  : 250 }, { duration : 750, when : 1250 })
  .add('.box', { left : 50  }, { duration : 750, when : 2000 })
  .add('.box', { top  : 50  }, { duration : 750, when : 2750 })
  // assign a name for debugging
  .name('demo')
  // display event triggers in view
  .on('sequence:started', function() {
    $('.current').text('started');
  })
  .on('sequence:completed', function() {
    $('.current').text('completed');
  })
  .on('sequence:rewinding', function() {
    $('.current').text('rewinding');
  })
  .on('sequence:paused', function() {
    $('.current').text('paused');
  })
  // play sequence
  demoSequence.play();
});

HTML

<div class="box"></div>

CSS

.box {
  top: 50px;
  left: 50px;
  width: 50px;
  height: 50px;
  position: absolute;
  background-color: #ff0099;
}

Brought to you by:

License (MIT)

Copyright (c) 2013, Edward Hotchkiss

Read the original on github.com ↗