2011-10-10 74 views
6

目前我有一个正在运行的小提琴,我试图让一个css3不透明度过渡在我添加一个类时触发。基本的设置是,我点击一个按钮,然后通过jQuery我添加一个div到DOM,然后我将该元素添加到DOM然后添加一个类。新的dom元素的添加类是假设启动我的转换,但它不是,唯一发生的是该元素正在显示,但不透明度转换无效。任何帮助将不胜感激,我正在离开链接到小提琴 这里fiddle link。并且我知道我可以用jquery做淡入淡出,但这只是一个实验,可能会用来启动其他css过渡,然后不透明用Jquery添加一个类测试CSS3过渡

+0

它确实似乎只是如果类是预定义的工作...动态添加它不会执行转换。也许这仍然是一个需要解决的问题。 –

+0

多数民众赞成在我的想法,但直到很难相信,这并没有被铬或火狐开发人员注意到 – Lawrence

回答

0

我不认为CSS3过渡支持动态创建的元素,但尚未。我试图通过将div直接放入HTML中来修改您的示例,并且转换工作正常。在改进浏览器支持之前,您可能必须将其作为解决方法。

9

我以前遇到过这个问题,我发现唯一的解决方法是增加一个setTimeout让DOM通知有一个新的元素。它可以是零毫秒,它仍然可以工作:

$('button').live('click', function() { 
    $(this).after("<div class='fade'>This is just a test</div>") 
    setTimeout(function(){$(".fade").addClass("in");}, 0) 
}); 

http://jsfiddle.net/tfmFx/

+0

嗯,这真的很烦人。感谢您的解决方案。 – BinaryTox1n

+0

谢谢!我一直在寻找一个月的解决方案! – neaumusic

+0

救了我的一天....虽然它的旧帖子:) – poddroid