2010-08-02 122 views
18

我正在製作一個網站,它允許用戶更改查看選項。我使用jQuery來平滑字體變化的動畫。它會將整個頁面淡出並重新使用新的字體。jQuery不透明度動畫

淡出動畫很好,但是當它淡入時,沒有淡入淡出。它只是彈出,沒有動畫。

有問題的jQuery在http://xsznix.my3gb.com/options.php

我到目前爲止的代碼是這樣的:

$('#font-classic').click(function(){ 
    $(document.body).animate({opacity: '0%'},{duration: 1000, complete: function(){ 
     // font changing code here 
     $(document.body).animate({opacity: '100%'}, 1000); 
    }}); 
}); 

回答

7

爲什麼不使用jQuery的內置功能fadeInfadeOut

$('#font-classic').click(function(){ 
    $('body').fadeOut('normal', function(){ 
     $('body').fadeIn(); 
    }}); 
}); 
+0

我想我可以,但我真的不想再重複我的括號...因爲我只是懶惰。 – xsznix 2010-08-02 17:59:53

+0

@xsznix,它也更清潔。 'animate'是用於**自定義**動畫的。 – 2010-08-02 18:06:48

+0

我想你是對的,我會這樣做。 – xsznix 2010-08-02 18:18:14

44

jQuery的.animate()取值從01

$(document.body).animate({opacity: 0}, 1000); 
$(document.body).animate({opacity: 1}, 1000); 

我敢肯定,.animate()必須要求你傳遞的價值觀,這將使.parseFloat()(或某事)你0%0(這是正確的),但你的100%100,這將是不正確。

+7

@xsznix - FYI'.animate()'是「指」用於任何你想要的動畫。沒有關於自定義與非自定義(不管那意味着什麼)的規則。當你調用'.fadeOut()'時,它直接*調用'.animate()',所以你只是從它抽象出來的一個步驟。使用你喜歡的任何一個,並且不要被構成任意規則的人所影響。 :o) – user113716 2010-08-02 19:36:59

+0

我明白了......只是.animate()使用了許多額外的字節。 :P – xsznix 2010-08-04 20:16:37

+0

。fadeIn()/ fadeOut()也是「更清潔」的,因此更容易維護。 – xsznix 2010-08-04 20:17:13

5

可以使用的功能或者是這樣的:

$(document.body).animate({ opacity: 1/2 }, 1000);