当我遇到一个奇怪的问题时,我一直在玩 CSS3 过渡以淡入覆盖 div。
基本上我有一个 div 元素,它的 id 上设置了样式 - 即背景颜色:#000、不透明度:0 等。以及特定于浏览器的过渡样式。默认情况下,覆盖元素上有一个“hiddenElement”类,将其显示设置为无。
当要显示覆盖时,将删除 hiddenElement 类,并添加另一个类“初始化”,该类将元素不透明度设置为 0.6。
我期望发生的是让元素平滑地动画化,这在 Opera 中确实发生了,但在 Firefox 和 chrome 中它并不能完全那样工作。
我在这里建立了一个孤立的案例:http: //jsbin.com/obojet/27/。
正如您所看到的,当“addClass('Initialised')”被包装在 setTimeout() 中时,即使在 chrome 中超时为 0 毫秒,它也能正确设置动画。只是在超时之外做 addClass,不会做动画。在 Firefox 中,超时时间必须更长 - 50 毫秒。在歌剧中它只是工作。
这可能归结为 UI/Javascript 争夺单线程,但我只是好奇是否有其他人遇到过类似的问题。