CSS übergeht neue Elemente

Ich kann nicht einen Weg finden, um css-übergänge, die auf neu erstellte dom-Elemente.

sagen wir, ich habe ein leeres html-Dokument.

<body>
    <p><a href="#" onclick="return f();">click</a></p>
</body>

Ich habe auch diese css -

#id {
    -moz-transition-property: opacity;
    -moz-transition-duration: 5s;
    opacity: 0;
}

#id.class {
    opacity: 1;
}

und diese js -

function f() {
    var a = document.createElement('a');
    a.id = 'id';
    a.text = ' fading in?';
    document.getElementsByTagName('p')[0].appendChild(a);
    //at this point I expect the span element to be with opacity=0

    a.className = 'class';
    //now I expect the css transition to go and "fade in" the a        

    return false;
}

aber, wie Sie sehen können auf http://jsfiddle.net/gwxkW/1/wenn Sie auf das element erscheint sofort.

Wenn ich versuchen die Klasse in einem timeout() ich oft das Ergebnis finden, aber mir scheint es mehr ein Rennen zwischen javascript-und css-engine. Gibt es ein bestimmtes Ereignis zu hören? Ich habe versucht, zu verwenden document.body.addEventListener('DOMNodeInserted', ...) aber es funktioniert nicht.

Wie kann ich mich bewerben, css-transitions, die auf neu geschaffenen Elemente?

InformationsquelleAutor der Frage Vito De Tullio | 2012-08-23

Schreibe einen Kommentar