From e3bfd08cbcbffddf53de4f0f6030a794402cf532 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 4 Mar 2006 17:12:03 +0000 Subject: Fixed Effect.Appear in effects.js to work with floats in Safari (closes #3524, #3813, #3044) [Thomas Fuchs] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3757 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/html/javascripts/effects.js | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'railties/html/javascripts/effects.js') diff --git a/railties/html/javascripts/effects.js b/railties/html/javascripts/effects.js index 91d5348a03..c5183092fd 100644 --- a/railties/html/javascripts/effects.js +++ b/railties/html/javascripts/effects.js @@ -85,6 +85,12 @@ Element.childrenWithClassName = function(element, className) { function(c) { return Element.hasClassName(c, className) }); } +Element.forceRerendering = function(element) { + var n = document.createTextNode(' '); + $(element).appendChild(n); + Element.remove(n); +} + Array.prototype.call = function() { var args = arguments; this.each(function(f){ f.apply(this, args) }); @@ -545,6 +551,10 @@ Effect.Appear = function(element) { var options = Object.extend({ from: (Element.getStyle(element, 'display') == 'none' ? 0.0 : Element.getOpacity(element) || 0.0), to: 1.0, + // force Safari to render floated elements properly + afterFinishInternal: function(effect) { + Element.forceRerendering(effect.element); + }, beforeSetup: function(effect) { with(Element) { setOpacity(effect.element, effect.options.from); show(effect.element); }} -- cgit v1.2.3