对于 Opera 的可见性转换错误,是否有 CSS 解决方法?



这是一个开始:http://jsfiddle.net/kizu/A7QX9/

问题:在Opera中,当你动画过渡的visibility属性(通常与opacity一起)它不是正确的动画:visibility总是在过渡结束时改变,所以当块出现时,它不会顺利出现。

所以,问题是:是否有任何css只解决这个Opera的错误?

在我提出这个问题并思考了一段时间后,我自己找到了答案。

并想出了一个解决方案

那么,一步一步来:

  1. 让我们看看当你需要显示在开始时隐藏的块的情况。
  2. 当你切换opacityvisibility的过渡,块保持与visibility: hidden,而过渡是在运行中。所以,你不需要在这里为visibility使用过渡。
  3. 但是当你再次隐藏块时,你需要在过渡结束时切换visibility,所以你显然需要这里的过渡。
  4. 所以,在块被隐藏的选择器中,你必须有opacity的过渡,而在它显示的选择器中,你不需要过渡。

这是我用这个解决方案做的一个小提琴:http://jsfiddle.net/kizu/A7QX9/1/

Opera中当前的过渡实现是基于旧版本的规范,该规范规定对于过渡可见性"1"为"可见",其他所有值为"隐藏"。

所以如果你尝试从"隐藏"过渡到"可见",那么你将看不到元素,直到底层0-1范围表示过渡值达到1。同时,如果你正在从"可见"过渡到"隐藏",那么元素将在过渡开始后立即消失,因为value将为<1.

你期望的行为是在规范的"草案"版本中指定的,它说"0"是"隐藏的",所有其他值都是"可见的"。

好消息- Opera 12将包括修复这个错误。

相关内容

  • 没有找到相关文章

最新更新