Opened 14 years ago
Closed 11 years ago
#5393 closed bug (fixed)
getColor reports inaccurate color for transparent elements in Webkit
Reported by: | Rwhitbeck | Owned by: | Corey Frang |
---|---|---|---|
Priority: | major | Milestone: | 1.9.0 |
Component: | ui.effects.core | Version: | 1.8 |
Keywords: | color | Cc: | |
Blocked by: | Blocking: |
Description
I realize that getColor (from jquery.effects.core.js) is not an exposed function, but I did notice something odd about the logic which leads to it reporting incorrectly for transparent elements on Webkit. I copied getColor, getRGB and the 'colors' variable out into a simple example file with the latest jQuery and following contents:
Copy code
- <div id="red" style="background-color:red;">
- <div id="trans">
- Some text.
- </div>
- </div>
And with the following call:
Copy code
- alert(getColor($('#trans').get(0),'backgroundColor'));
Webkit (Chrome) will alert 255,255,255 while Firefox will alert 255,0,0
This is because there are two places in the code that handle transparency. Firefox (and I assume IE) transparency is caught in the do/while loop in getColor while Webkit transparency falls through to getRGB and is caught with a regular expression, thus returning colorstransparent?, which happens to be white.
Shouldn't getColor also handle the Webkit transparency something like this:
Copy code
$.nodeName(elem, "body") ) |
I saw mention of exposing getColor publicly and figured that this might be worth addressing before it's up for general use.
I've put together a working example of the issue and a copy of the getColor function with the logic moved so that it reports accurately for Webkit.
Forum: http://forum.jquery.com/topic/getcolor-reports-inaccurate-color-for-transparent-elements-in-webkit
Change History (8)
comment:1 Changed 13 years ago by
Component: | ui.core → effects.core |
---|
comment:2 Changed 13 years ago by
comment:4 Changed 13 years ago by
Status: | new → open |
---|
comment:5 Changed 12 years ago by
Owner: | set to Corey Frang |
---|---|
Status: | open → assigned |
comment:6 Changed 12 years ago by
I'm going to be handling this in jQuery-color -- The expected return from should be "transparent"
comment:7 Changed 12 years ago by
Keywords: | color added |
---|
comment:8 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Upgrade to jquery-color 2.0pre. Fixes #6910 - Trying to animate the background color of a document fragment can easily fail. Fixes #5215 - Effects color: Add support for rgba animations. Fixes #4372 - Animate backgroundColor to 'transparent'. Fixes #5393 - getColor reports inaccurate color for transparent elements in Webkit. Fixes #3806 - Feature request: expose getRGB and getColor.
Changeset: 13d560b8f05a8eedbf28851824fe639a254f9fd0
There seems to be a fix for this suggested in http://bugs.jqueryui.com/ticket/5215