Praticamente questo, si potrebbe utilizzare un incarico impilati:
for (i=0;i<=lastSelector;i++) {
var e = mySelector[i];
e.style.WebkitTransition =
e.style.MozTransition =
e.style.OTransition =
e.style.MsTransition =
e.style.transition =
'opacity 1s';
e.style.opacity = 0;
}
Dal momento che ci sono parecchi di queste proprietà in cui abbiamo versioni specifiche del fornitore, si potrebbe considerare una funzione riutilizzabile che fa questo, ad esempio:
function setMultiVendorProp(style, propName, value) {
// Set the non-vendor version
style[propName] = value;
// Make first char capped
propName = propName.substring(0, 1).toUpperCase() + propName.substring(1);
// Set vendor versions
style["Webkit" + propName] = value;
style["Moz" + propName] = value;
style["O" + propName] = value;
style["Ms" + propName] = value;
// Done
return value;
}
O utilizzando lo stile tratteggiato invece, dal momento che stiamo già utilizzando stringhe piuttosto che identificatori:
function setMultiVendorProp(style, propName, value) {
// Set the non-vendor version
style[propName] = value;
// Set vendor versions
style["-webkit-" + propName] = value;
style["-moz-" + propName] = value;
style["-o-" + propName] = value;
style["-ms-" + propName] = value;
// Done
return value;
}
Poi:
for (i=0;i<=lastSelector;i++) {
var e = mySelector[i];
setMultiVendorProp(e.style, "transition", "opacity 1s");
e.style.opacity = 0;
}
note collaterali:
- non c'è
;
dopo la chiusura }
in un comunicato for
.
var
ovunque in una funzione è a livello di funzione, quindi dichiarare var
all'interno di blocchi non funzionali all'interno della funzione è (leggermente) fuorviante per il lettore del codice; Dettagli: Poor, misunderstood var
fonte
2012-01-05 13:31:54
Se 'V è statico, vorrei utilizzare una classe e aggiungo solo la classe all'elemento. –
@FelixKling: +1 – fcalderan
FelixKling, buon punto! In questo caso non avrò accesso ai file CSS :) – Hakan