// JavaScript Document var Ticker = new Class({ setOptions: function(options) { this.options = Object.extend({ speed: 1500, delay: 500, direction: 'vertical', onComplete: Class.empty, onStart: Class.empty }, options || {}); }, initialize: function(el,options){ this.setOptions(options); this.el = $(el); this.items = this.el.getElements('li'); var w = 0; var h = 0; w = this.el.getSize().size.x; this.items.each(function(li,index) { h += li.getSize().size.y; }); this.el.setStyles({ position: 'absolute', top: 0, left: 0, width: w, height: h }); this.fx = new Fx.Styles(this.el,{duration:this.options.speed,onComplete:function() { var i = (this.current==0)?this.items.length:this.current; this.items[i-1].injectInside(this.el); this.flagMotionControl = 'not running'; this.el.setStyles({ left:0, top:0 }); }.bind(this)}); this.current = 0; this.next(); }, next: function() { if (this.flagMotionControl != 'running') { this.current++; if (this.current >= this.items.length) this.current = 0; } var pos = this.items[this.current]; this.flagMotionControl = 'running'; this.fx.start({ top: -pos.offsetTop, left: -pos.offsetLeft }); ticTimer = this.next.bind(this).delay(this.options.delay+this.options.speed); }, pause: function() { $clear(ticTimer); ticTimer = null; }, resume: function() { if (ticTimer == null) { this.next(); } } }); // class