我只需点击按钮即可将行添加到预先存在的表中。为了区分添加了哪些行,我为添加的行添加了背景颜色。但是,我想在一段时间后删除这种背景颜色或淡出它。
以下是我现在正在做的事情:
$("#numlist").prepend("<tr class='newrow'><td>somenum</td></tr>");
如何淡出课程newrow
?
以下是一个示例:http://jsfiddle.net/Nx2nC/
答案 0 :(得分:5)
我建议使用CSS动画:
@-mozilla-keyframes newRowAdded {
from {
background-color: #ffa;
}
to {
background-color: #fff;
}
}
@-ms-keyframes newRowAdded {
from {
background-color: #ffa;
}
to {
background-color: #fff;
}
}
@-o-keyframes newRowAdded {
from {
background-color: #ffa;
}
to {
background-color: #fff;
}
}
@-webkit-keyframes newRowAdded {
from {
background-color: #ffa;
}
to {
background-color: #fff;
}
}
@keyframes newRowAdded {
/* 'from' is that starting position/frame */
from {
background-color: #ffa;
}
/* 'to' is the final position/frame */
to {
background-color: #fff;
}
}
.newrow {
/* first: the animation-name,
second: the animation duration (s for seconds): */
-moz-animation: newRowAdded 2s;
-ms-animation: newRowAdded 2s;
-o-animation: newRowAdded 2s;
-webkit-animation: newRowAdded 2s;
animation: newRowAdded 2s;
}
使用CSS动画的不可避免的缺点是,较旧的浏览器,尤其是但不限于Internet Explorer,将无法实现此解决方案。要关注那些不兼容的浏览器,如果您愿意并且有能力实现jQuery UI 以及 jQuery本身:
$("#add").click(function (event) {
event.preventDefault();
$("#numlist tbody").prepend("<tr class='newrow'><td>somenum</td></tr>").find('.newrow:first').css('background-color', '#ffa').animate({
'background-color' : '#fff'
}, 2000);
});
请注意,jQuery本身不能为元素的color
或background-color
属性设置动画,但jQuery UI可以。虽然有一个替代jQuery color plugin也添加了这个功能,它可能比添加jQuery UI中的最小化(以及仅相关模块)更轻量级。
参考文献:
答案 1 :(得分:1)
您可以使用setTimeout()删除类
var $el = $("#numlist").prepend("<tr class='newrow'><td>somenum</td></tr>");
setTimeout(function() { $('.newrow',$el).removeClass('newrow')}, 1000);
你可以使用css过渡来实现淡化效果
.newrow {
background-color: red;
transition: background-color 1s linear;
}
tr {
background-color: none;
transition: background-color 1s linear;
}
答案 2 :(得分:0)
试试这个:
$("#add").click(function (e) {
e.preventDefault();
var $tr = $("<tr/>",{"class":"newrow","html":"<td>somenum</td>"}).hide();
$("#numlist").prepend($tr.show("slow"));
setTimeout(function(){
$tr.css("background-color","#fff")
},1500);
});
在这里工作小提琴:http://jsfiddle.net/Nx2nC/9/