2014-10-03 87 views
2

當頁面加載時,我有一個div滑動下來,但我無法弄清楚如何讓它淡入,因爲它的動畫。我嘗試了不同的時尚效果,但似乎沒有任何工作。淡入動畫格

$(function(){ // $(document).ready shorthand 
    $("#headerWrapper").animate({top: '+=200px'}, 1000).fadeIn(); 
     }, function() { 
    $("#headerWrapper").animate({top: '-=100%'}, 1000).fadeIn(); 
}); 

http://jsfiddle.net/oq83qc7o/

+2

你能幫助我們幫助你並分享你的jsfiddle :-)嗎? – mpacheco 2014-10-03 15:56:22

+0

你是否試圖用slideDown代替動畫? – 2014-10-03 15:57:33

+0

您可以使用'.animate()'回調:http://api.jquery.com/animate/#animate-properties-duration-easing-complete – melancia 2014-10-03 15:58:17

回答

3

你也應該動畫的不透明度。所以將它設置爲0開始,然後當動畫運行時,它將在動畫的時間段內將其更改爲1;

$(function(){ // $(document).ready shorthand 
    $("#headerWrapper").animate({top: '0px', opacity: 1}, 1000); 
     }, function() { 
    $("#headerWrapper").animate({top: '-=100%', opacity: 1}, 1000); 
}); 

也有改變你的一些CSS的:

section#headerWrapper { 
    background: #000; 
    color: #FFF; 
    width:100%; 
    position:fixed; 
    font-size: 30px; 
    z-index:1; 
    padding-bottom:1em; 
    top:-80px; 
    opacity: 0; 
} 

+0

完美謝謝@DavidJones – user3756781 2014-10-03 16:12:10

+0

歡迎你 - 我很高興它的工作! – 2014-10-03 16:12:37

-1

大衛瓊斯的答案是正確的。但我會在他的回答中加入一些事情。

爲什麼你的函數不能按照你想要的方式工作是因爲jQuery的鏈接功能。如果你添加另一個函數給你的初始jQuery對象,它會按照調用順序執行這些函數。

$('#myObject').animate().fadeIn() 

將執行動畫()第一次,然後等待它完成和執行淡入()

CSS

#headerWrapper { 
    opacity: 0; 
    position: fixed; 

    width:100%; 
    z-index:1; 
    padding-bottom:1em; 
    /* margin-top:-200px; unnecessary for fixed positioned elements */ 

    top: -200px; 
} 

JS(大衛·瓊斯回答)

$(function(){ // $(document).ready shorthand 
    $("#headerWrapper").animate({top: '+=200px', opacity: 1}, 1000); 
}, function() { 
    $("#headerWrapper").animate({top: '-=100%', opacity: 1}, 1000); 
}); 
+0

我不認爲你增加了任何東西......你只是重申了大衛瓊斯已經說過的一切......你甚至不知道OP是否想要在座標(0,0) – 2014-10-03 16:05:41

+0

處進行絕對定位請檢查我的答案。我解釋了一下jQuery鏈接。 – 2014-10-03 16:09:59

+0

不起作用,因爲我的位置需要固定位置@だらんぎんじょん – user3756781 2014-10-03 16:10:44