我有一个div列表,允许我的用户通过发布新内容动态添加新的div。如果用户发布新内容,我想通过将新div的背景颜色淡化为另一种颜色并将其淡化来在屏幕上突出显示它。我非常接近:
http://jsfiddle.net/pUeue/1953/
我正在使用此CSS来触发转换:
.backgroundAnimated{
background-color: #AD310B !important;
background-image:none !important;
-webkit-transition: background-color 5000ms linear;
-moz-transition: background-color 5000ms linear;
-o-transition: background-color 5000ms linear;
-ms-transition: background-color 5000ms linear;
transition: background-color 5000ms linear;
-webkit-animation-direction: alternate; /* Chrome, Safari, Opera */
animation-direction: alternate;
-webkit-animation-iteration-count: 2; /* Chrome, Safari, Opera */
animation-iteration-count: 2;
}
我可以淡化为另一种颜色,但它不会消退。我想知道是否有人有建议要做到这一点?我意识到有很多方法可以做到这一点,但我希望在CSS中完全包含它(除了通过jQuery动态添加CSS类。
感谢您的任何建议......
答案 0 :(得分:48)
您可以使用动画关键帧。不需要额外的JavaScript。
$('input[type=button]').click( function() {
$('#newContent').addClass('backgroundAnimated');
});
@-o-keyframes fadeIt {
0% { background-color: #FFFFFF; }
50% { background-color: #AD301B; }
100% { background-color: #FFFFFF; }
}
@keyframes fadeIt {
0% { background-color: #FFFFFF; }
50% { background-color: #AD301B; }
100% { background-color: #FFFFFF; }
}
.backgroundAnimated{
background-image:none !important;
-o-animation: fadeIt 5s ease-in-out;
animation: fadeIt 5s ease-in-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Old stuff</div>
<div>Old stuff</div>
<div>Old stuff</div>
<div id="newContent">New stuff, just added</div>
<input type="button" value="test" />
答案 1 :(得分:4)
嗯..如果你想把它保存在css中你可以在你的click事件中添加一个setTimeout然后添加另一个类。
$('input[type=button]').click( function() {
$('#newContent').addClass('backgroundAnimated');
setTimeout(function(){
$('#newContent').addClass('nextBackgroundAnimated');
}, 5000);
});
CSS ::
.backgroundAnimated{
background-color: #AD310B !important;
background-image:none !important;
-webkit-transition: background-color 5000ms linear;
-moz-transition: background-color 5000ms linear;
-o-transition: background-color 5000ms linear;
-ms-transition: background-color 5000ms linear;
transition: background-color 5000ms linear;
-webkit-animation-direction: alternate; /* Chrome, Safari, Opera */
animation-direction: alternate;
-webkit-animation-iteration-count: 2; /* Chrome, Safari, Opera */
animation-iteration-count: 2;
}
.nextBackgroundAnimated{
background-color: white !important;
background-image:none !important;
}
答案 2 :(得分:0)
如果可以使用jquery-ui,这可能会有所帮助:
$('input[type=button]').click( function() {
var animTime = 1000;
$('#newContent').addClass('pulse', animTime).removeClass('pulse', animTime);
});
.pulse{
background-color: #AD310B;
}
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript" charset="utf-8"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
type="text/javascript" charset="utf-8"></script>
<div>Old stuff</div>
<div>Old stuff</div>
<div>Old stuff</div>
<div id="newContent">New stuff, just added</div>
<input type="button" value="test" />