0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
3.2.0-5
/
standard
/
htdocs
/
lib
/
mootools
/
src
/
Effects
/
[
Home
]
File: Fx.Elements.js
/* Script: Fx.Elements.js Contains <Fx.Elements> License: MIT-style license. */ /* Class: Fx.Elements Fx.Elements allows you to apply any number of styles transitions to a selection of elements. Includes colors (must be in hex format). Inherits methods, properties, options and events from <Fx.Base>. Arguments: elements - a collection of elements the effects will be applied to. options - same as <Fx.Base> options. */ Fx.Elements = Fx.Base.extend({ initialize: function(elements, options){ this.elements = $$(elements); this.parent(options); }, setNow: function(){ for (var i in this.from){ var iFrom = this.from[i], iTo = this.to[i], iCss = this.css[i], iNow = this.now[i] = {}; for (var p in iFrom) iNow[p] = iCss[p].getNow(iFrom[p], iTo[p], this); } }, set: function(to){ var parsed = {}; this.css = {}; for (var i in to){ var iTo = to[i], iCss = this.css[i] = {}, iParsed = parsed[i] = {}; for (var p in iTo){ iCss[p] = Fx.CSS.select(p, iTo[p]); iParsed[p] = iCss[p].parse(iTo[p]); } } return this.parent(parsed); }, /* Property: start Applies the passed in style transitions to each object named (see example). Each item in the collection is refered to as a numerical string ("1" for instance). The first item is "0", the second "1", etc. Example: (start code) var myElementsEffects = new Fx.Elements($$('a')); myElementsEffects.start({ '0': { //let's change the first element's opacity and width 'opacity': [0,1], 'width': [100,200] }, '4': { //and the fifth one's opacity 'opacity': [0.2, 0.5] } }); (end) */ start: function(obj){ if (this.timer && this.options.wait) return this; this.now = {}; this.css = {}; var from = {}, to = {}; for (var i in obj){ var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {}, iCss = this.css[i] = {}; for (var p in iProps){ var parsed = Fx.CSS.parse(this.elements[i], p, iProps[p]); iFrom[p] = parsed.from; iTo[p] = parsed.to; iCss[p] = parsed.css; } } return this.parent(from, to); }, increase: function(){ for (var i in this.now){ var iNow = this.now[i], iCss = this.css[i]; for (var p in iNow) this.elements[i].setStyle(p, iCss[p].getValue(iNow[p], this.options.unit, p)); } } });