您还必须加载 jQuery UI 才能为颜色设置动画 - 应该注意.animation()
jQuery UI 中的函数不支持 CSS 颜色名称。您将不得不使用十六进制值、rgb[a]()
等hsl()
。
$(function () {
$('form :input').focus(function () {
$(this).closest('fieldset').stop(true,true).animate({
"background-color": "#808080" // CSS hex color equivalent of grey
},2000);
});
$('form :input').blur(function () {
$(this).closest('fieldset').stop(true,true)..animate({
"background-color": "transparent"
},2000);
});
});
注意: .stop(true,true)
在.animate()
方法之前使用,以确保如果用户快速聚焦和模糊输入,动画队列不会最终进入堆栈。
http://jsfiddle.net/teddyrised/8wRhG/
但是,我不建议仅仅为了彩色动画而加载 jQuery UI。我可以建议使用 CSS 过渡加上使用 JS 设置字段集背景吗?
$(function () {
$('form :input').focus(function () {
$(this).closest('fieldset').css({
"background-color": "#808080"
});
});
$('form :input').blur(function () {
$(this).closest('fieldset').css({
"background-color": "transparent"
});
});
});
CSS:
form fieldset input {
transition: background-color 2s linear;
}
http://jsfiddle.net/teddyrised/8wRhG/4/