blob: 69e8a65461d8e8f5eedb1b2dbbf788fa483a8acf [file] [log] [blame]
/**
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);
}
});