2013-10-02 1 views
12

Ho trovato questa getComputedStyle polyfill in un JavaScript pluginjquery equivalente per getcomputedstyle()

if (!computed) { 
    window.getComputedStyle = function(el) { 
    this.el = el; 
    this.getPropertyValue = function(prop) { 
     var re = /(\-([a-z]){1})/g; 
     if (prop === "float") { 
     prop = "styleFloat"; 
     } 
     if (re.test(prop)) { 
     prop = prop.replace(re, function() { 
      return arguments[2].toUpperCase(); 
     }); 
     } 
     return el.currentStyle[prop] ? el.currentStyle[prop] : null; 
    }; 
    return this; 
    }; 
} 

Esiste un equivalente jQuery per getcomputedstyle();

+3

http://api.jquery.com/css/? – Bergi

risposta

26

È possibile utilizzare la versione getter di .css().

Da doc

metodo

Il css() è un modo conveniente per ottenere una proprietà di stile dal primo elemento abbinato , soprattutto alla luce dei diversi modi browser accedere alla maggior parte di queste proprietà (la getComputedStyle() metodo nei browser basati su standard rispetto alle proprietà currentStyle e runtimeStyle in Internet Explorer) e i diversi termini utilizzano i browser per determinate proprietà.

come

$(el).css('color') 
+0

ma tiene conto delle impostazioni predefinite del browser e/o del CSS dell'utente? sospetto che sia ciò che @Arya sta cercando con 'stile calcolato' – Plato

+3

@Plato: dai documenti: "* Il metodo .css() è un modo conveniente per ottenere una proprietà di stile dal primo elemento corrispondente, specialmente alla luce del diversi modi i browser accedono alla maggior parte di queste proprietà (il metodo getComputedStyle() nei browser basati su standard rispetto alle proprietà currentStyle e runtimeStyle in Internet Explorer) e ai diversi termini utilizzati dai browser per determinate proprietà * " – Bergi

+0

@Arya nota che il polyfill potrebbe fare di più male che bene - lascia che jQuery faccia la sua parte. – Alnitak