Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 6779

Show
Ignore:
Timestamp:
05/19/07 00:11:46 (1 year ago)
Author:
madrobby
Message:

Element.setOpacity now calls removeAttribute on the filter style on IE if no more filters remain, which makes Cleartype work properly. Closes #8376.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/trunk/CHANGELOG

    r6760 r6779  
    11*SVN* 
     2 
     3* Element.setOpacity now calls removeAttribute on the filter style on IE if no more filters remain, which makes Cleartype work properly.  Closes #8376.  [alexdemi, Thomas Fuchs] 
    24 
    35* Event.findElement now uses Element#up (and as a result can take a CSS selector instead of just a tag name).  [Tobie Langel] 
  • spinoffs/prototype/trunk/src/dom.js

    r6757 r6779  
    690690   
    691691  Element.Methods.setOpacity = function(element, value) { 
     692    function stripAlpha(filter){ 
     693      return filter.replace(/alpha\([^\)]*\)/gi,''); 
     694    } 
    692695    element = $(element); 
    693696    var filter = element.getStyle('filter'), style = element.style; 
    694697    if (value == 1 || value === '') { 
    695       style.filter = filter.replace(/alpha\([^\)]*\)/gi,''); 
     698      (filter = stripAlpha(filter)) ? 
     699        style.filter = filter : style.removeAttribute('filter'); 
    696700      return element; 
    697701    } else if (value < 0.00001) value = 0; 
    698     style.filter = filter.replace(/alpha\([^\)]*\)/gi, '') + 
     702    style.filter = stripAlpha(filter) + 
    699703      'alpha(opacity=' + (value * 100) + ')'; 
    700704    return element;    
  • spinoffs/prototype/trunk/test/unit/dom.html

    r6728 r6779  
    895895        $('style_test_3').setOpacity(0.9999999).getStyle('opacity') > 0.999 
    896896      ); 
     897       
    897898    }}, 
    898899