【发布时间】:2012-05-31 21:05:53
【问题描述】:
我有一个元素,带有一个最初隐藏的子容器。当我将鼠标悬停在父级上时,应该显示子级。很简单。
现在,对于真正的浏览器,我想添加一些功能并让孩子淡入 - 同时仍然保留非 CSS3 兼容浏览器的基本功能。对于旧浏览器,我只需切换display,同时为所有使用酷炫浏览器的孩子制作opacity 动画。应该是简单的操作吧?
令我非常惊讶和失望的是,这有点像马车。
在 Firefox 中,当我将鼠标悬停在上面时,子元素会切换为完全不透明,然后淡出 out。但是,嘿,我希望它一开始是完全透明的,然后淡入 in!
在 Webkit 中,动画不会触发 - 只有 display 切换。
在 IE(包括 IE10 PP)中,它也只是简单地切换 display(正如预期的那样,虽然我希望它会在 IE10 中动画)。
在 Opera 中一切正常。
现在,如果我从初始声明中删除 display:none;,动画在 Fx 中效果很好,但是我会遇到不酷的浏览器的问题,遗憾的是,这在访问者中占主导地位特定项目。
由于我拥有 Modernizr 的功能,我可以简单地制作一个条件样式,以便我只在愚蠢的浏览器上使用display 切换,生活又美好了,但问题仍然存在:
这是 Fx/Webkitz 中的错误,还是故意的?
这里有一个小提琴供你看:http://jsfiddle.net/TheNix/q5bAZ/4/
【问题讨论】:
-
切换父元素,并在子元素属性上设置过渡很有用。定位和可见性的组合也很有效。
标签: firefox css webkit opacity css-transitions