我想让一个 DIV 背景(没有背景颜色)闪烁红色,然后再次变为空白。现在我已经使用 JS 向有问题的 DIV 添加了一个新的 CLASS(它添加了红色),并使用 CSS3 为背景颜色添加了缓动。但它可以缓解它,我想要的是它变成红色然后缓解。我想我可以通过使用 JS 在延迟后添加多个 CLass 来做到这一点。但是 CSS3 能完全做到这一点吗?
问问题
25515 次
2 回答
48
如果你想要像高亮一样的东西,你可能想要使用 CSS3 动画。旧版浏览器不支持它们。检查caniuse。
单击链接时会调用突出显示。这是 CSS(没有供应商前缀):
@keyframes highlight {
0% {
background: red
}
100% {
background: none;
}
}
#highlight:target {
animation: highlight 1s;
}
<div id="highlight"><a href="#highlight">Highlight</a></div>
于 2012-04-09T12:40:10.453 回答
2
一种方法是使用 jQuery UI animate 方法,该方法扩展了“普通”jQuery animate() 以影响背景颜色等内容。
像这样的转换在 css3 中是可能的,但显然没有那么广泛的浏览器支持。
#maDiv {
-webkit-transition:background-color 0.5s linear;
-moz-transition: background-color 0.5s linear;
-o-transition: background-color 0.5s linear;
height: 20px;
width: 20px;
background:#000;
}
#maDiv:hover {
background: #ff0;
}
这将在用户悬停 Div 时淡出颜色,并在鼠标离开时淡出,超过 0.5 秒。有关浏览器支持的详细信息,请参阅此处的“css3 转换”:http: //www.html5rocks.com/en/features/presentation
于 2012-04-09T12:30:07.227 回答