我想在1800 milisec的时间内更改输入字段的CSS。它有效,但没有平稳过渡。我必须在某个地方放一个淡入淡出吗?我在这里缺少什么:
$(".div-input").blur(function () {
$('.div-input').removeClass("div-input", 1800).addClass('div-input-second');
});
答案 0 :(得分:2)
看起来只有一个的无效参数,您也可以在this
function
中为选择器使用内容blur
。
removeClass()采用类名或函数。不确定参数列表中的1800
是什么。如果你想让动画看到动画。
试试这个......
$(".div-input").blur(function () {
$(this).removeClass("div-input").addClass('div-input-second');
});
答案 1 :(得分:2)
您可以使用.animate()自行更改CSS值,但是没有办法在类之间淡入淡出。
答案 2 :(得分:2)
要执行css样式动画,您需要使用.animate jquery animate
答案 3 :(得分:2)
要扩展之前的答案,.removeClass
和.addClass
函数没有与之关联的时序。如果您想要一个到类的动画,则需要手动为css设置动画
这是一个例子:
.div-input{
color: red;
width: 200px;
}
.div-input-second{
color: blue;
width: 300px;
}
$(".div-input").click(function () {
$(this).animate({
color: '#0000ff',
width: '300px'
}, 1800).removeClass("div-input").addClass('div-input-second');
});
这会导致动画发生,然后在动画结束后交换类,因此如果需要,您可以使用该类名做更多的事情。
使用.click
查看this jsfiddle的工作演示。我不肯定.blur
对div
元素有显着影响。
将元素淡出,交换类然后淡入淡出的简单效果可能看起来像这样(使用与上面相同的css):
$(".div-input").click(function () {
$(this).fadeOut(900, function(){
$(this).toggleClass("div-input div-input-second")
.fadeIn(1800);
})
});
您可以在this updated jsfiddle处看到这一点。
答案 4 :(得分:1)
要么使用jQuery animate,要么看看这个插件,http://plugins.jquery.com/project/animate-to-class我没有尝试过,但似乎是你正在寻找的。 p>
另外 - 如果您正在使用FireFox下载Firebug - 它有一个很好的控制台来捕获JS错误。
答案 5 :(得分:1)
您可以使用JQuery UI执行此操作 http://jqueryui.com/demos/switchClass/
$(".div-input").blur(function () {
$(".div-input").switchClass("div-input", "div-input-second", 1800);
// Optionally to switch back
// $(".div-input-second").switchClass("div-input-second", "div-input", 1800);
});
如这个小提琴所示: http://jsfiddle.net/kSBP3/3/