Dość dużo, że można użyć ułożone Zadanie:
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;
}
Ponieważ istnieje kilka z tych właściwości, gdzie mamy wersje specyficznych dla dostawcy, można rozważyć wielokrotnego użytku funkcji, które wykonuje to, np:
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;
}
lub za pomocą przerywanej styl zamiast, ponieważ jesteśmy już przy użyciu ciągów zamiast identyfikatorów:
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;
}
Następnie:
for (i=0;i<=lastSelector;i++) {
var e = mySelector[i];
setMultiVendorProp(e.style, "transition", "opacity 1s");
e.style.opacity = 0;
}
notatki uboczne:
- Nie ma
;
po zamknięciu }
w for
oświadczeniu.
- gdziekolwiek w funkcji jest o szerokości całej funkcji, więc deklarowanie
var
w blokach niefunkcyjnych wewnątrz funkcji jest (nieznacznie) wprowadzające w błąd czytelnikowi kodu; szczegóły: Poor, misunderstood var
Jeśli 'v' jest statyczna, chciałbym użyć klasy i tylko dodać klasę do elementu. –
@FelixKling: +1 – fcalderan
FelixKling, dobry punkt! W tym przypadku nie będę miał dostępu do plików CSS :) – Hakan