使用 jQuery 淡出背景色
fading out the background color with jquery
我得到了AJAX帖子以获得如下最新评论:
function add_the_answer_to_the_list(dataString)
{
// append this damn comment to the list
$.ajax
({
type: "POST",
url: "home/get_answer/",
data : dataString,
success: function(data)
{
var data = jQuery.parseJSON(data);
//append the comment
$(
'<li><article>'+data+ '</article></li>'
).hide().prependTo("#answer_list ul").fadeIn();
}
});
现在,当评论淡入时,我应该怎么做才能用红色突出显示评论,然后将背景颜色慢慢淡化回原始颜色? 有没有办法在没有插件的情况下做这种事情?
谢谢
CSS:
*
{ -webkit-transition: background-color .25s ease-out;
-moz-transition: background-color .25s ease-out;
-o-transition: background-color .25s ease-out;
-ms-transition: background-color .25s ease-out;
transition: background-color .25s ease-out; }
.highlight
{ background: red; }
用于 ajax 回调函数的 JQuery:
$('<li><article>'+data+ '</article></li>')
.hide()
.prependTo("#answer_list ul")
.fadeIn(500, function() {
$(this).addClass('highlight')
.delay(500)
.removeClass('highlight');
});
您可以使用 CSS3 过渡效果来执行此操作。
例
要使用的 CSS3 类 - 这将允许不透明度和背景的过渡,因此它可以"淡入"并同时更改颜色:
.comment {
opacity: 0;
background: #ff0000;
transition: background .25s ease-in-out;
-moz-transition: background .25s ease-in-out;
-webkit-transition: background .25s ease-in-out;
transition: opacity .25s ease-in-out;
-moz-transition: opacity .25s ease-in-out;
-webkit-transition: opacity .25s ease-in-out;
}
.comment-fade-in {
background: #00ff00 /* make this your 'original color' */
opacity: 1.0;
}
现在的javascript代码:
function add_the_answer_to_the_list(dataString)
{
// append this damn comment to the list
$.ajax
({
type: "POST",
url: "home/get_answer/",
data : dataString,
success: function(data)
{
var data = jQuery.parseJSON(data);
//append the comment
var comment = $('<li><article>'+data+ '</article></li>');
comment.addClass('comment');
comment.prependTo("#answer_list ul");
comment.addClass('comment-fade-in');
}
});
试试看
如果您不想使用 CSS3 过渡或动画,则需要一个插件。通过使用jQuery.Color插件,您可以使用jQuery的.animate()
方法对背景颜色进行动画处理。
$(ele).animate({backgroundColor:'rgba(0,0,0,0)'});
问题解决了。我使用 JqueryUI 核心效果:
$(this).effect("highlight", {}, 3000);
您可以使用 jQuery UI switchClass
。示例:http://jsfiddle.net/DH8jK/1/
在您的示例中:
$.ajax
({
type: "POST",
url: "home/get_answer/",
data : dataString,
success: function(data)
{
var data = jQuery.parseJSON(data);
//append the comment
$(
'<li><article>'+data+ '</article></li>'
).hide().prependTo("#answer_list ul").fadeIn().switchClass('class-with-background', 'class-without-background', 2000);
}
有关详细信息,请参阅 http://jqueryui.com/switchClass/。
编辑
使用removeClass
(http://jqueryui.com/removeClass/)就更容易
$(
'<li class="class-with-background"><article>'+data+ '</article></li>'
).hide().prependTo("#answer_list ul").fadeIn().removeClass('class-without-background', 2000);
您可以使用 jquery 颜色插件,该插件仅在缩小时1.7 KB
我创建了一个小提琴 http://jsfiddle.net/vKaYJ/
相关文章:
- jquery.each(第2行)添加背景色
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- 悬停时淡入背景色
- 如何在单击单元格中的链接值时动态更改表行背景色
- Gridview内部的下拉框在回发时未保留背景色
- 用背景色智能填充引导列
- 带有背景色的高图表柱形图
- 带有javascript的选定文本的背景色
- 当代码使用背景色时无法更改位置
- 将元素放置在方框顶部时更改方框的背景色
- 检索表中元素的背景色
- 在Wordpress中创建随机背景色
- 存在事件的单元格的jQuery DatePicker背景色(加载时)
- CSS转换未在增加高度时更新背景色
- 如何设置按钮来更改按钮的背景色
- 避免使用背景色和边框色
- 更改表列javascript的背景色
- 使用Jquery选中复选框时,更改复选框的背景色
- 滚动后,尝试在导航栏的背景色中淡入淡出
- 使用 jQuery 淡出背景色