effects.js revision ada1678a4262b208a7b87391f520a7767d25287c
// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// Contributors:
// Justin Palmer (http://encytemedia.com/)
// Mark Pilgrim (http://diveintomark.org/)
// Martin Bialasinki
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/
// converts rgb() and #xxx to #xxxxxx format,
// returns self (or first argument) if not convertable
String.prototype.parseColor = function() {
var color = '#';
} else {
}
}
};
/*--------------------------------------------------------------------------*/
};
};
return element;
};
};
try {
element.appendChild(n);
element.removeChild(n);
} catch(e) { }
};
/*--------------------------------------------------------------------------*/
var Effect = {
name: 'ElementDoesNotExistError',
message: 'The specified DOM element does not exist, but is required for this effect to operate'
},
Transitions: {
},
return 1-pos;
},
},
},
},
},
return 0;
},
return 1;
}
},
sync: false, // true for combining
from: 0.0,
to: 1.0,
delay: 0.0,
queue: 'parallel'
},
tagifyText: function(element) {
var tagifyStyle = 'position:relative';
child);
});
}
});
},
var elements;
if (((typeof element == 'object') ||
Object.isFunction(element)) &&
else
speed: 0.1,
delay: 0.0
}, arguments[2] || { });
});
},
PAIRS: {
'slide': ['SlideDown','SlideUp'],
'blind': ['BlindDown','BlindUp'],
'appear': ['Appear','Fade']
},
}, arguments[2] || { });
}
};
/* ------------- core effects ------------- */
initialize: function() {
this.effects = [];
this.interval = null;
},
},
switch(position) {
case 'front':
// move unstarted effects after this effect
});
break;
case 'with-last':
break;
case 'end':
// start effect after last queued effect has finished
break;
}
if (!this.interval)
},
clearInterval(this.interval);
this.interval = null;
}
},
loop: function() {
}
});
}
};
position: null,
return (
);
}
this.currentFrame = 0;
this.state = 'idle';
this.render = (function() {
}
return function(pos) {
if (this.state === "idle") {
this.state = "running";
dispatch(this, 'beforeSetup');
dispatch(this, 'afterSetup');
}
if (this.state === "running") {
dispatch(this, 'beforeUpdate');
dispatch(this, 'afterUpdate');
}
};
})();
this.event('beforeStart');
},
this.render(1.0);
this.cancel();
this.event('beforeFinish');
this.event('afterFinish');
return;
}
if (frame > this.currentFrame) {
this.currentFrame = frame;
}
}
},
cancel: function() {
this.state = 'finished';
},
},
inspect: function() {
for(property in this)
}
});
initialize: function(effects) {
},
},
});
}
});
},
}
});
initialize: function() {
},
});
initialize: function(element) {
// make this work on IE on elements without 'layout'
to: 1.0
}, arguments[1] || { });
},
}
});
initialize: function(element) {
x: 0,
y: 0,
mode: 'relative'
}, arguments[1] || { });
},
setup: function() {
this.element.makePositioned();
}
},
});
}
});
// for backwards compatibility
};
scaleX: true,
scaleY: true,
scaleContent: true,
scaleFromCenter: false,
scaleFrom: 100.0,
}, arguments[2] || { });
},
setup: function() {
this.originalStyle = { };
}.bind(this));
this.fontSizeType = fontSizeType;
}
}.bind(this));
this.dims = null;
if (!this.dims)
},
},
},
var d = { };
if (this.options.scaleFromCenter) {
if (this.elementPositioning == 'absolute') {
} else {
}
}
}
});
initialize: function(element) {
},
setup: function() {
// Prevent executing on elements not in the layout flow
// Disable background image during the effect
this.oldStyle = { };
if (!this.options.keepBackgroundImage) {
}
if (!this.options.restorecolor)
// init color calculations
this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
},
},
finish: function() {
}));
}
});
elementOffsets[1],
);
};
/* ------------- combination effects ------------- */
to: 0.0,
afterFinishInternal: function(effect) {
}
}, arguments[1] || { });
};
to: 1.0,
// force Safari to render floated elements properly
afterFinishInternal: function(effect) {
},
beforeSetup: function(effect) {
}}, arguments[1] || { });
};
var oldStyle = {
};
beforeSetupInternal: function(effect) {
},
afterFinishInternal: function(effect) {
}, arguments[1] || { })
);
};
Object.extend({ scaleContent: false,
scaleX: false,
restoreAfterFinish: true,
afterFinishInternal: function(effect) {
}
}, arguments[1] || { })
);
};
scaleContent: false,
scaleX: false,
scaleFrom: 0,
restoreAfterFinish: true,
afterSetup: function(effect) {
},
afterFinishInternal: function(effect) {
}
}, arguments[1] || { }));
};
duration: 0.4,
from: 0,
afterFinishInternal: function(effect) {
beforeSetup: function(effect) {
},
afterFinishInternal: function(effect) {
}
});
}
}, arguments[1] || { }));
};
var oldStyle = {
Object.extend(
{ duration: 0.5,
beforeSetup: function(effect) {
},
afterFinishInternal: function(effect) {
}
}, arguments[1] || { }));
};
distance: 20,
duration: 0.5
}, arguments[1] || {});
var oldStyle = {
}}); }}); }}); }}); }}); }});
};
// SlideDown need to have the content of the element wrapped in a container element with fixed height!
scaleContent: false,
scaleX: false,
restoreAfterFinish: true,
afterSetup: function(effect) {
},
afterUpdateInternal: function(effect) {
},
afterFinishInternal: function(effect) {
}, arguments[1] || { })
);
};
Object.extend({ scaleContent: false,
scaleX: false,
scaleMode: 'box',
scaleFrom: 100,
restoreAfterFinish: true,
afterSetup: function(effect) {
},
afterUpdateInternal: function(effect) {
},
afterFinishInternal: function(effect) {
}
}, arguments[1] || { })
);
};
// Bug in opera makes the TD containing this element expand for a instance after finish
restoreAfterFinish: true,
beforeSetup: function(effect) {
},
afterFinishInternal: function(effect) {
}
});
};
direction: 'center',
}, arguments[1] || { });
var oldStyle = {
var initialMoveX, initialMoveY;
case 'top-left':
break;
case 'top-right':
break;
case 'bottom-left':
break;
case 'bottom-right':
break;
case 'center':
break;
}
x: initialMoveX,
y: initialMoveY,
duration: 0.01,
beforeSetup: function(effect) {
},
afterFinishInternal: function(effect) {
[ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
], Object.extend({
beforeSetup: function(effect) {
},
afterFinishInternal: function(effect) {
}
}, options)
);
}
});
};
direction: 'center',
}, arguments[1] || { });
var oldStyle = {
case 'top-left':
break;
case 'top-right':
moveY = 0;
break;
case 'bottom-left':
moveX = 0;
break;
case 'bottom-right':
break;
case 'center':
break;
}
[ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
], Object.extend({
beforeStartInternal: function(effect) {
},
afterFinishInternal: function(effect) {
}, options)
);
};
};
};
var oldStyle = {
scaleContent: false,
scaleX: false,
afterFinishInternal: function(effect) {
scaleContent: false,
scaleY: false,
afterFinishInternal: function(effect) {
} });
}}, arguments[1] || { }));
};
initialize: function(element) {
style: { }
}, arguments[1] || { });
else {
else {
});
});
};
}
}
},
setup: function(){
function parseColor(color){
});
}
unit = 'color';
} else if (property == 'opacity') {
}
return {
};
return (
(
)
);
});
},
while(i--)
}
});
initialize: function(tracks){
this.tracks = [];
},
}));
}.bind(this));
return this;
},
play: function(){
}).flatten(),
this.options
);
}
});
'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
'fontSize fontWeight height left letterSpacing lineHeight ' +
'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
'right textIndent top width wordSpacing zIndex');
String.prototype.parseStyle = function(){
else {
}
});
return styleRules;
};
return styles;
});
};
} else {
return results;
});
return styles;
};
}
return element;
},
return element;
},
return element;
}
};
$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
'pulsate shake puff squish switchOff dropOut').each(
function(effect) {
return element;
};
}
);
$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
);