这里有一个开始的小提琴:http://jsfiddle.net/kizu/A7QX9/
问题:在Opera中,当您为visibility属性(通常与opacity一起)设置过渡动画时,它的动画效果不正确:visibility总是在过渡结束时更改,因此当块出现时,它看起来并不流畅。
那么,问题是:对于这个Opera的bug,有没有什么只有CSS的变通办法?
发布于 2011-10-18 03:28:00
在我阐述了这个问题并思考了一段时间后,我自己找到了答案。
并想出了一个解决方案。
所以,一步一步来:
opacity和visibility时,当过渡正在运行时,这个块留在visibility: hidden中。因此,您不需要在此处为visibility使用transition。visibility,因此您需要在此处使用transition在隐藏块的选择器上您必须具有opacity的转换,而在显示该转换的选择器中,您不需要转换。这是我在这个解决方案中做的一个小技巧:http://jsfiddle.net/kizu/A7QX9/1/
发布于 2011-10-18 06:23:09
目前在Opera中转换的实现是基于older version of the spec的,即对于转换可见性,"1“是”可见的“,而所有其他值都是”隐藏的“。
因此,如果你尝试从“隐藏”转换到“可见”,那么你将看不到元素,直到表示转换的底层0-1范围达到值1。同时,如果你从“可见”转换到“隐藏”,那么一旦转换开始,元素就会消失,因为值将<1。
您期望的行为是在"draft" version of the spec中指定的,它说明"0“是”隐藏的“,而所有其他值都是”可见的“。
不过,好消息是-Opera12将包含对此bug的修复。预计很快就会看到在Desktop Team blog上修复的测试构建。
https://stackoverflow.com/questions/7798282
复制相似问题