Чтобы расширить предыдущие ответы, функции .removeClass
и .addClass
не имеют привязки по времени к ним. Вам нужно будет анимировать CSS вручную, если вы хотите анимацию от класса к классу.
Вот пример:
CSS
.div-input{
color: red;
width: 200px;
}
.div-input-second{
color: blue;
width: 300px;
}
JQuery
$(".div-input").click(function () {
$(this).animate({
color: '#0000ff',
width: '300px'
}, 1800).removeClass("div-input").addClass('div-input-second');
});
Это должно привести к возникновению анимации, а затем поменять классы после ее завершения, чтобы вы могли сделать больше с этим именем класса, если вам нужно.
редактирование:
См. этот jsfiddle для рабочей демонстрации с использованием .click
. Я не уверен, что .blur
оказывает заметное влияние на div
элементов.
изменить 2:
Простой эффект для постепенного исчезновения элемента, обмена классами и последующего его восстановления может выглядеть примерно так (используя тот же CSS, что и выше):
JQuery
$(".div-input").click(function () {
$(this).fadeOut(900, function(){
$(this).toggleClass("div-input div-input-second")
.fadeIn(1800);
})
});
Вы можете увидеть это в действии на этом обновленном jsfiddle .