【发布时间】:2012-08-07 03:17:11
【问题描述】:
我一直在尝试让 CSS3 过渡效果在 Chrome 和 Safari 中运行,但没有成功。正如您在下面的代码示例中看到的那样,我正在使用:target 伪类选择器来触发关键帧动画,在这种情况下,它将 div 从一个位置移动到另一个位置。一旦您单击另一个链接,div 就会消失(它会跳回原来的位置)。
为了防止这种瞬间跳跃,我在 div 的原始状态中添加了过渡效果。通过这样做,转换将开始,并且 div 将“滑”回顶部,至少在您使用 Firefox 或 Opera 时是这样。 Chrome 和 Safari 似乎忽略了过渡效果,我不知道为什么?
我以前从未像这样组合过过渡和动画,所以我可能会遗漏一些东西?
关于如何让它在 Chrome 和 Safari 中运行(最好使用 CSS3)有什么想法吗?
我使用的是 Mac OS X、Chrome 21、Firefox 14.0.1 和 Opera 12.01
这是jsFiddle,这是 jsFiddle 示例中使用的代码:
HTML
<a href="#id1">One</a>
<a href="#id2">Two</a>
<div id="id1">
Hello hello
</div>
CSS
#id1 {
position: absolute;
top: -100px;
left: 100px;
width: 100px;
height: 100px;
/* Not working */
-webkit-transition-timing-function: linear;
-webkit-transition-duration: 0.5s;
/* Working */
-moz-transition-timing-function: linear;
-moz-transition-duration: 0.5s;
/* Working */
-o-transition-timing-function: linear;
-o-transition-duration: 0.5s;
}
#id1:target {
-webkit-animation: down 0.5s ease-in forwards;
-moz-animation: down 0.5s ease-in forwards;
-o-animation: down 0.5s ease-in forwards;
}
@-webkit-keyframes down {
0% { top: -100px; left: 100px; }
100% { top: 200px; left: 100px; }
}
@-moz-keyframes down {
0% { top: -100px; left: 100px; }
100% { top: 200px; left: 100px; }
}
@-o-keyframes down {
0% { top: -100px; left: 100px; }
100% { top: 200px; left: 100px; }
}
【问题讨论】:
标签: css