• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

"transition"-Animation wird ungewollt bei Seitenaufruf ausgeführt

J

j-l-n

Guest
http://www.developer.julian-jp.tk/?dir=css_problem-transititon

Im Stylesheet habe ich unter anderem
Code:
-webkit-transition: all 0.50s ease-in-out;
transition: all 0.50s ease-in-out;
notiert. Und zwar für einen weichen Übergang, wenn ich z.B. die Radio-Button-Auswahl wechsle, dass die Markierung nicht einfach zum anderen überspringt, sondern bei der vorherigen langsam ausblendet und bei der neuen einblendet.
Jedoch wird nun beim Laden der Seite auch die Designänderung vom browserdefinierten Standard-Aussehen der Elemente zu dem im CSS definierten Aussehen verzögert. Wie verhindere ich dies?
 
Zuletzt bearbeitet:
Das scheint nur im Chrome so zu sein.

Aber ich würde prinzipiell immer nur das animieren, was du auch animiert haben willst. Also anstatt dem "all" z.B. "background-image".

Du könntest mal probieren, ob das Problem verschwindet, wenn du im CSS zuerst die Definitionen machst und dann erst am Ende die transition-Anweisung schreibst.
 
Mir ist gerade noch etwas sehr seltsames aufgefallen: lasse ich den <form>-Tag weg, erfolgt keine Animation beim Seitenaufruf. Schau mal oben, ich hab eine zweite Version ohne diesen hochgeladen.
Problem: ich brauche das <form> natürlich, um die Eingaben absenden zu können, von daher kann ich es nicht einfach weglassen...
 
Sehr komisch... klingt irgendwie scho wieder nach einem Bug. Du könntest die transition-Anweisungen auch mit JS im window.onload setzten... aber wirklich elegant ist das nicht.

Probier' noch mal aus, ob es hilft, wenn du die transition in eine separate Regel oder sogar in eine separate Datei setzt.
 
Du könntest die transition-Anweisungen auch mit JS im window.onload setzten... aber wirklich elegant ist das nicht.

Folgendes funktioniert nicht:
Code:
function loadCSSAnimation(){
  document.getElementById("password").style.setAttribute("transition", "all 0.50s ease-in-out");
  alert("style set.");
}
 
Äh... da sollte was in der Fehlerkonsole stehen... das .style-Objekt hat keinen .setAttribute()-Methode...

Prinzipiell ist .setAttribute sowieso nicht gut bei Standardattributen.

Code:
document.getElementById("password").style.transition = "all 0.50s ease-in-out";
 
Generell ist bei Styleattributen die Umformung so, dass ein Hyphen ("-") mit dem folgenden Buchstaben zu einem Großbuchstaben gemacht werden:
Code:
var name = "-moz-was-auch-immer".replace(/\-(\w)/g, function(m, c){
	return c.toUpperCase();
});
 
Zurück
Oben