我使用.ajax()
函數在我的php應用程序中提交表單。如果表單成功,我將提交按鈕文本從「提交」更改爲「已成功發送郵件」。動畫提交按鈕的值更改
它的效果很好,但我想動畫按鈕的值變化,而不是它'彈出'到下一個值。
我看到了fadeIn()
,和fadeTo()
的功能,但我不認爲這些功能可行。
我該怎麼做?謝謝!
我使用.ajax()
函數在我的php應用程序中提交表單。如果表單成功,我將提交按鈕文本從「提交」更改爲「已成功發送郵件」。動畫提交按鈕的值更改
它的效果很好,但我想動畫按鈕的值變化,而不是它'彈出'到下一個值。
我看到了fadeIn()
,和fadeTo()
的功能,但我不認爲這些功能可行。
我該怎麼做?謝謝!
<input type="button" id="submit" value="SUBMIT"/>
<input type="button" id="sent" value="MESSAGE SENT SUCCESSFULLY" style="display: none;"/>
$(function(){
$('#submit').click(function(){
$(this).fadeOut(1000, function(){$('#sent').fadeIn(1000);});
});
});
給你的總體思路。如果你想做一個交叉淡入淡出,我的想法可能會把它們放在DIV中,淡化DIV,同時也將它們定位在疊加。
修訂
淡入淡出:
#submit, #sent {
position: absolute;
left: 0;
top: 0;
}
#sent {
display: none;
}
<div id="submit">
<input type="button" value="SUBMIT"/>
</div>
<div id="sent">
<input type="button" value="MESSAGE SENT SUCCESSFULLY"/>
</div>
$(function(){
$('#submit').click(function(){
$(this).fadeOut(1000);
$('#sent').fadeIn(1000);
});
});
隨着disabled="disabled"
<div id="submit">
<input type="button" value="SUBMIT"/>
</div>
<div id="sent">
<input type="button" value="MESSAGE SENT SUCCESSFULLY" disabled="disabled"/>
</div>
@drpcken - 請參閱編輯。 – 2011-04-16 18:03:28
一種方法,我想出了:
$('form').submit(
function(){
$(this).trigger('success');
return false;
});
$('form').bind('success',
function(){
var submitValue = 'form success!';
$('<input id="temp" type="submit" value="'+ submitValue +'" />')
.text(submitValue)
.appendTo('body');
var width = $('#temp').outerWidth();
$(this)
.find('input:submit')
.animate(
{
'color':'transparent'
}, 1500,
function(){
$(this).val(submitValue);
})
.animate(
{
'color': '#000',
'width': width
}, 1500);
$('#temp').remove();
});
這是,幾乎可以肯定,可笑冗長。而且可以更加簡潔......但它運作得很好......如果這是任何安慰。
你是認真的嗎? (也許這只是格式化,這讓我暈眩) – 2011-04-17 05:06:16
@Jared,請記住,我選擇了動畫和交叉淡出提交按鈕中的值,而不是淡出和淡入新的。 ...否則,是的:這是遠遠不夠的,因爲它應該/可能是。 – 2011-04-17 09:55:05
我的猜測是你可能必須在兩個不同的元素之間進行動畫處理(第二個被禁用)。 – 2011-04-16 17:53:32