2012-05-04 16 views
0

現在、3層構造のdivの位置をアニメートしようとしています。最初の層はヘッダーのみを表示し、2番目はヘッダーと抜粋を表示し、 3番目の追加コピー。現時点では、ティア1とティア2の両方でポジションボトムをアニメートできますが、ティア3を理想的にはトップになるようにアニメーション化する方法はわかりません:0私はできないと思います。誰がこれを達成する方法についてアドバイスを提供することができますか?divをページ上部にアニメーション表示するにはどうすればいいですか

JS

more.on('click', function(e){ 

    if(body.hasClass('tier1')){ 
    body.removeClass('tier1').addClass('tier2'); 
    wrapper.delay(500).animate({ bottom: wrapper.data('tier2') }, 400, function(){ 
     //show close 
     close.show(); 
    }); 

    } else if (body.hasClass('tier2')){ 
    body.removeClass('tier2').addClass('tier3'); 
    wrapper.delay(1500).animate({ bottom: '300' }, 500, function(){ // show be top of window 
     // hide read more 
     more.hide(); 

     // hide .excerpt + show .upper 
     excerpt.fadeOut(function(){ 
     upper.fadeIn(); 
     }); 
    }); 
    } 

    e.preventDefault(); 
}); 

現在のビルドへのリンク:http://bit.ly/IA65Mb

カイル

+0

私は完全にフォローしています。 「+」記号を2回クリックすると、そのボックスがページの上部にアニメーション表示されますか? –

+0

ええ、私はボックスのウィンドウの高さを拡大し、上部に固定座って欲しい。今すぐあなたが#wrapperを一番下から上に変更する場合:0あなたは私が作りたいと思っている効果を見ます – styler

答えて

0

チェックこのhttp://jsfiddle.net/d3eLE/6/ HTML

<div id="wrap"> 
     <a id="me">Click me</a> 
</div> 

CSS

#wrap { 
    position: absolute; 
    bottom: 0; 
    width: 400px; 
    height: 50px; 
    background: #ff0; 
} 

#me { 
    border: 1px #000 solid; 
    background: #0f0; 
} 

jQueryが

$("#me").click(function(){ 
    $("#wrap").animate({ 
     bottom: ($(window).height() - $("#wrap").height()) 
    }, 2000); 

}); 

代わりに下を使用して、あなたはトップを使用することができます。

$("#wrap").removeAttr("bottom").animate({ 
    top: 0 
}, 2000); 
+0

これは私が必要とするものを達成しません。窓の高さ他の2つの層のボトム位置を使用すると、これはどのように達成できますか? – styler

+0

要件を満たすためにコードを更新しました。 – KBN

+0

ちょっとおかげさまで、理想的にはポジショントップを使用すると本当にできます。なぜなら、ページのサイズを変更するとコンテンツが消えていくということです。トップに変更した場合:階層3の場合は0、アニメーションは表示されず、階層2に移動する場合はクリックします。 – styler

関連する問題