Вы хотите обернуть текст в промежуток, а затем исчезнуть:
<div class="button"><span>TEXT!</span></div>
, и вы не хотите использовать fadeOut
, потому что это изменит размер вашей кнопки, так как текст будетисчезают, как только fadeOut
заканчивается и больше не занимают места.Вместо этого анимируйте непрозрачность:
$(".button").click(function(){
$(this).find("span").animate({opacity:0},function(){
$(this).text("new text")
.animate({opacity:1});
})
});
http://jsfiddle.net/8Dtr6/
РЕДАКТИРОВАТЬ: Небольшая коррекция, пока вы немедленно исчезаете в ней, кажется, не проблема для использования fadeIn
иfadeOut
, по крайней мере, в хром.Я ожидаю, что, возможно, в браузерах меньшего размера заметит небольшое мерцание, но это может быть неправильно.
Возможно, немного чище, используя очередь, чтобы избежать обратных вызовов:
$(".button").click(function(){
$(this).find("span")
.animate({opacity:0})
.queue(function(){
$(this).text("new text")
.dequeue()
})
.animate({opacity:1});
});
http://jsfiddle.net/8Dtr6/2