//restoreFrameElements($affectedElements); // and restore the elements' position
dfr.resolve(); // resolve the fade function
});
return dfr.promise();
},
_fadeOutFrame: function(frame) {
var dfr = $.Deferred(),
$frame = this.$frames.eq(frame),
$disposeElements = this._$disposeElementsByFrame[frame];
this._fadeFrame(frame, this._animationOut, "out").done(function(){
dfr.resolve();
})
return dfr.promise();
},
_fadeInFrame: function(frame) {
var dfr = $.Deferred(),
$frame = this.$frames.eq(frame),
$elements = this._$elementsByFrame[frame];
this._restoreFrame(frame);
$frame.show();
this._fadeFrame(frame, this._animationIn, "in").done(function(){
dfr.resolve();
});
return dfr.promise();
},
_restoreFrame: function(frame){
if (!frame) return
restoreFrameElements( this._$elementsByFrame[frame].add(this._$disposeElementsByFrame[frame]) );
},
nextFrame: function() {
var frame = this.currentFrame+1,
dfr = $.Deferred();
if (frame > this.framesCount-1) {
if (this.config.loop) {
frame = 0;
} else {
dfr.reject();
}
};
this.selectFrame(frame).done(function(){
dfr.resolve();
});
return dfr.promise();
},
prevFrame: function() {
var frame = this.currentFrame-1,
dfr = $.Deferred();
if (frame < 0) {
if (this.config.loop) {
frame = this.framesCount-1;
} else {
dfr.reject();
return dfr.promise();
}
}
this.selectFrame(frame).done(function(){
dfr.resolve();
});
return dfr.promise();
},
go: function(str) { // shorthand
switch (str) {
case "next":
case "+1":
this.nextFrame();
break;
case "prev":
case "-1":
this.prevFrame();
break;
case "first":
this.selectFrame(0);
break;
case "last":
this.selectFrame(this.framesCount-1);
break;
default:
if (isNaN(str)) return;
this.selectFrame(Number(str));
}
},
// returns jquery collection of animation elements
_getFrameElements: function(frame) {
var $frame = this.$frames.eq(frame),
elements = this.config.elements,
e, elementOptions,
$found, $frameElements = $([]);
for (e in elements) {
elementOptions = elements[e];
$found = $frame.find(e);
$found.addClass("t-frame-element").data("tlrkAnimOptions", $.extend({}, this.defaults.defaultElementOptions, elementOptions ));
$frameElements = $frameElements.add($found);
}
return $frameElements;
},
// returns jquery collection of elements that have to be faded out
// i.e. elements on the same level as the animation elements
// that doesn't contain other animation elements
_getDisposeFrameElements: function(frame) {
var $disposeElements = $([]),









