| /** |
| Script: Slideshow.Push.js |
| Slideshow.Push - Push extension for Slideshow. |
| |
| License: |
| MIT-style license. |
| |
| Copyright: |
| Copyright (c) 2008 [Aeron Glemann](http://www.electricprism.com/aeron/). |
| |
| Dependencies: |
| Slideshow. |
| Mootools 1.2 More: Fx.Elements. |
| */ |
| |
| Slideshow.Push = new Class({ |
| Extends: Slideshow, |
| |
| /** |
| Constructor: initialize |
| Creates an instance of the Slideshow class. |
| |
| Arguments: |
| element - (element) The wrapper element. |
| data - (array or object) The images and optional thumbnails, captions and links for the show. |
| options - (object) The options below. |
| |
| Syntax: |
| var myShow = new Slideshow.Push(element, data, options); |
| */ |
| |
| initialize: function(el, data, options){ |
| options.overlap = true; |
| this.parent(el, data, options); |
| }, |
| |
| /** |
| Private method: show |
| Does the slideshow effect. |
| */ |
| |
| _show: function(fast){ |
| var images = [this.image, ((this.counter % 2) ? this.a : this.b)]; |
| if (!this.image.retrieve('fx')) |
| this.image.store('fx', new Fx.Elements(images, {'duration': this.options.duration, 'link': 'cancel', 'onStart': this._start.bind(this), 'onComplete': this._complete.bind(this), 'transition': this.options.transition })); |
| this.image.set('styles', {'left': 'auto', 'right': 'auto' }).setStyle(this.direction, this.width); |
| var values = {'0': {}, '1': {} }; |
| values['0'][this.direction] = [this.width, 0]; |
| values['1'][this.direction] = [0, -this.width]; |
| if (images[1].getStyle(this.direction) == 'auto'){ |
| var width = this.width - images[1].width; |
| images[1].set('styles', {'left': 'auto', 'right': 'auto' }).setStyle(this.direction, width); |
| values['1'][this.direction] = [width, -this.width]; |
| } |
| if (fast){ |
| for (var prop in values) |
| values[prop][this.direction] = values[prop][this.direction][1]; |
| this.image.retrieve('fx').cancel().set(values); |
| } |
| else |
| this.image.retrieve('fx').start(values); |
| } |
| }); |