我找不到在新创建的 dom 元素上使用 css 转换的方法。
假设我有一个空的 html 文档。
<body>
<p><a href="#" onclick="return f();">click</a></p>
</body>
我也有这个CSS
#id {
-moz-transition-property: opacity;
-moz-transition-duration: 5s;
opacity: 0;
}
#id.class {
opacity: 1;
}
而这个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;
}
但是,正如您在http://jsfiddle.net/gwxkW/1/上看到的那样,当您单击该元素时会立即出现。
如果我尝试在 a 中设置类,timeout()
我经常会找到结果,但对我来说,这似乎更像是 javascript 和 css 引擎之间的竞赛。有什么特定的事件要听吗?我尝试使用document.body.addEventListener('DOMNodeInserted', ...)
,但它不工作。
如何在新创建的元素上应用 css 过渡?