Hey everyone, I''ve created a new "core" effect for use with a project I''m working on. Thought some people might find it useful. It takes a CSS parameter that has top, right, left, and bottom parameters and adjusts them as specified; useful making adjustments to page layouts (ie, hide one element and adjust another''s margin to fill to void). I''ve not tested it a whole lot; it works with margins though (that''s what I''m using it for). Stick it in with the core effects at the top of effects.js. Then add your usage function into effects.js...I''ve included a "right margin" adjustment here. Seems to work as far as I can tell; if you find any major issues, let me know. I''m using 1.5 RC 4, FYI. // call this function in your page Effect.ChangeRightMargin(elems[i], 210); // the secondary effect Effect.ChangeRightMargin = function(element, to) { element = $(element); new Effect.Adjust(element, ''margin'', {toRight: to}); } // the core effect Effect.Adjust = Class.create(); Object.extend(Object.extend(Effect.Adjust.prototype, Effect.Base.prototype), { initialize: function(element, property) { this.element = $(element); this.property = property; var options = Object.extend({ toRight: null, toLeft: null, toTop: null, toBottom: null }, arguments[2] || {}); this.originalRight = parseFloat(Element.getStyle(this.element, property + ''-right'') || ''0''); this.originalLeft = parseFloat(Element.getStyle(this.element, property + ''-left'') || ''0''); this.originalTop = parseFloat(Element.getStyle(this.element, property + ''-top'') || ''0''); this.originalBottom = parseFloat(Element.getStyle(this.element, property + ''-bottom'') || ''0''); this.start(options); }, update: function(position) { rightd = (this.originalRight * (1-position)) + (this.options.toRight * position); leftd = (this.originalLeft * (1-position)) + (this.options.toLeft * position); topd = (this.originalTop * (1-position)) + (this.options.toTop * position); bottomd = (this.originalBottom * (1-position)) + (this.options.toBottom * position); this.makeAdjustment(rightd, leftd, topd, leftd); }, makeAdjustment: function(rightd, leftd, topd, bottomd) { if(this.options.toRight != null) { this.element.style[this.property + ''Right''] = rightd + "px"; } if(this.options.toLeft != null) { this.element.style[this.property+ ''Left''] = leftd + "px"; } if(this.options.toTop != null) { this.element.style[this.property + ''Top''] = topd + "px"; } if(this.options.toBottom != null) { this.element.style[this.property + ''Bottom''] = bottomd + "px"; } } }); -Jerod Venema