aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Resig <jeresig@gmail.com>2007-03-16 20:37:10 +0000
committerJohn Resig <jeresig@gmail.com>2007-03-16 20:37:10 +0000
commit83b43a1e927d6b260f35f75bc2c3d177f271be93 (patch)
treed15be34a7886e09907002174e678e9b714125afa
parentab2d10c6d62c4d2b834337e238cf2a618eec4412 (diff)
downloadjquery-83b43a1e927d6b260f35f75bc2c3d177f271be93.tar.gz
jquery-83b43a1e927d6b260f35f75bc2c3d177f271be93.zip
Forced the test suite into standards mode. Fixed some issues with how opacity was handled in IE. Fixed a number of IE fx bugs.
-rw-r--r--build/test/fx.html11
-rw-r--r--src/fx/fx.js6
-rw-r--r--src/jquery/jquery.js30
3 files changed, 25 insertions, 22 deletions
diff --git a/build/test/fx.html b/build/test/fx.html
index bdbcbf2c3..050513a40 100644
--- a/build/test/fx.html
+++ b/build/test/fx.html
@@ -1,7 +1,9 @@
-<html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
-<title>Animation Test Suite</title>
-<script src="../dist/jquery.js"></script>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Animation Test Suite</title>
+ <script src="../dist/jquery.js"></script>
<style>
div#tests h4 {
background: red;
@@ -232,8 +234,9 @@ $(document).ready(function(){
var cur_o = jQuery.attr(this.style, "opacity");
if ( cur_o !== "" ) cur_o = parseFloat( cur_o );
- if ( (t_o == "hide"||t_o == "show") && cur_o != f_o )
+ if ( (t_o == "hide"||t_o == "show") && cur_o != f_o ) {
return msg(this, "Opacity not reset to " + f_o + ": " + cur_o);
+ }
if ( t_w == "hide" && this.style.display != "none" )
return msg(this, "Hiding, display not none: " + this.style.display);
diff --git a/src/fx/fx.js b/src/fx/fx.js
index f67747fd0..163f0f65c 100644
--- a/src/fx/fx.js
+++ b/src/fx/fx.js
@@ -462,7 +462,7 @@ jQuery.extend({
if ( !elem.orig ) elem.orig = {};
// Remember where we started, so that we can go back to it later
- elem.orig[prop] = elem.style[prop];
+ elem.orig[prop] = jQuery.attr( elem.style, prop );
options.show = true;
@@ -479,7 +479,7 @@ jQuery.extend({
if ( !elem.orig ) elem.orig = {};
// Remember where we started, so that we can go back to it later
- elem.orig[prop] = elem.style[prop];
+ elem.orig[prop] = jQuery.attr( elem.style, prop );
options.hide = true;
@@ -492,7 +492,7 @@ jQuery.extend({
if ( !elem.orig ) elem.orig = {};
// Remember where we started, so that we can go back to it later
- elem.orig[prop] = this.style[prop];
+ elem.orig[prop] = jQuery.attr( elem.style, prop );
if(oldDisplay == "none") {
options.show = true;
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js
index 061d86c89..0c00829f6 100644
--- a/src/jquery/jquery.js
+++ b/src/jquery/jquery.js
@@ -1402,12 +1402,12 @@ jQuery.extend({
curCSS: function(elem, prop, force) {
var ret;
-
+
if (prop == "opacity" && jQuery.browser.msie)
return jQuery.attr(elem.style, "opacity");
-
+
if (prop == "float" || prop == "cssFloat")
- prop = jQuery.browser.msie ? "styleFloat" : "cssFloat";
+ prop = jQuery.browser.msie ? "styleFloat" : "cssFloat";
if (!force && elem.style[prop])
ret = elem.style[prop];
@@ -1431,10 +1431,8 @@ jQuery.extend({
});
} else if (elem.currentStyle) {
-
var newProp = prop.replace(/\-(\w)/g,function(m,c){return c.toUpperCase();});
ret = elem.currentStyle[prop] || elem.currentStyle[newProp];
-
}
return ret;
@@ -1527,18 +1525,20 @@ jQuery.extend({
};
// IE actually uses filters for opacity ... elem is actually elem.style
- if ( name == "opacity" && jQuery.browser.msie && value != undefined ) {
- // IE has trouble with opacity if it does not have layout
- // Force it by setting the zoom level
- elem.zoom = 1;
-
- // Set the alpha filter to set the opacity
- return elem.filter = elem.filter.replace(/alpha\([^\)]*\)/gi,"") +
- ( value == 1 ? "" : "alpha(opacity=" + value * 100 + ")" );
+ if ( name == "opacity" && jQuery.browser.msie ) {
+ if ( value != undefined ) {
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ elem.zoom = 1;
+
+ // Set the alpha filter to set the opacity
+ elem.filter = (elem.filter || "").replace(/alpha\([^)]*\)/,"") +
+ (parseFloat(value).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
+ }
- } else if ( name == "opacity" && jQuery.browser.msie )
return elem.filter ?
- parseFloat( elem.filter.match(/alpha\(opacity=(.*)\)/)[1] ) / 100 : 1;
+ (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() : "";
+ }
// Certain attributes only work when accessed via the old DOM 0 way
if ( fix[name] ) {