我正在使用 jQuery UI 为背景颜色设置动画。我有一个包含 5 个带有背景颜色的项目的列表。每个 li 都有不同的背景颜色,在 css 中指定如下:
li:nth-child(1) {
background-color: rgb(147, 215, 224);
}
每个 li 里面都有一个复选框。我希望它像这样运行:
LI 内的所有复选框当前都已选中。当 li 内部的复选框未选中时,li 将具有特定的背景颜色(所有 LI 的背景颜色都相同)。再次选中复选框后,LI 将动画到它之前的背景颜色。我得到了这个代码,但我知道它很糟糕。当我取消选中该复选框时,它效果很好,将背景颜色设置为我想要的动画,但是当再次选中它时我无法让它工作,所以我在动画完成后制作了它,样式属性被删除。而且,我得到了这个结果:
当我单击输入时,li 将其背景颜色设置为我想要的动画,但是当我再次单击并再次选中复选框时,它会恢复到正常颜色,但速度非常快。在定义复选框是否被选中时,这也有很多错误。这是我当前的代码:
var state = true;
$( "li input:checked" ).click(function() {
if ( state ) {
$(this).parent().parent().animate({
backgroundColor: "#ECE7D2",
color: "#fff"
}, 1000 );
} else {
$(this).parent().parent().animate({
}, 1000, "swing", function() {
$(this).removeAttr("style");
} );
};
state = !state;
});
简而言之:一个包含 5 个项目的列表,具有指定的背景颜色。已加载 Jquery UI。单击其中的复选框(未选中)时,将项目的背景颜色更改为某种颜色。再次单击(选中)时,更改为之前的正常颜色,或者基本上取消我们首先执行的动画背景颜色。我希望我很清楚。
谢谢。
更新: