2009-06-24 17 views
1

私は小さなアニメーションをページに配置しようとしています。私は2つのdivsを並べています。そのうち2つ目はAjax経由のコンテンツです。そのため、divの高さはページをリフレッシュせずに変化します。JavaScriptアニメーションのサイズを変更するdiv

<div id="number1" style="float:left; padding-bottom:140px">Static content, 200px or so</div> 
<div id="number2" style="float:left">AJAX content here</div> 
<div style="clear:left"></div> 
<img src="image" margin-top:-140px" /> 

これは基本的に私に2列のレイアウトを与え、何で高左側の列の下に画像の巣アップ。すべていいよ!

私がしようとしていることは、受信Ajaxコンテンツのおかげでページの高さが変わったときに画像の変化を生み出すことです。現時点ではイメージが上下に動き回っているので、ページを滑らかに滑らせるようにしたいと思っています。

これは可能ですか?私は実際に私のJavaScriptにはないので、私はこれを行う方法がわかりません。私はサイト上でjQueryライブラリを使用していますので、それは将来の道でしょうか?

答えて

6

OK、私はちょうど非常に迅速かつ汚れた例をまとめました。

ここではHTMLです:私はいくつかの「アヤックスのコンテンツを追加するボタンを追加した

#outerContainer { 
     position: relative; 
     border: 1px solid red; 
     margin: 20px auto 0; 
     overflow: hidden; 
     width: 400px;} 
    .col { 
     width: 180px; 
     display: inline; 
     padding: 0 0 40px;} 
    #left { 
     float: left; 
     border: 1px solid cyan; 
     position: relative;} 
    #left img { 
     position: absolute; 
     bottom: 0; 
     left: 0;} 
    #right { 
     position: absolute; 
     top: 0; 
     left: 180px; 
     border: 1px solid green;} 
    #addContent { 
     text-align: center; 
     width: 100px; 
     margin: 20px auto 0; 
     display: block;} 

<body> 
     <a href="####" id="addContent">Add content</a> 
     <div id="outerContainer"> 
      <div id="left" class="col"> 
       <p>Static content</p> 
       <img src="images/innovation.gif" width="111px" height="20px"> 
      </div> 
      <div id="right" class="col"> 
       <p>Ajax content</p> 
      </div> 
     </div> 
    </body> 

jQueryの使用は、ここに

jQuery(function($){ 
    var addedHTML = "<p class='added'>Lorem ipsum dolor sit amet, Nunc consectetur, magna quis auctor mattis, lorem neque lobortis massa, ac commodo massa sem sed nunc. Maecenas consequat consectetur dignissim. Aliquam placerat ullamcorper tristique. Sed cursus libero vel magna bibendum luctus. Nam eleifend volutpat neque, sed tincidunt odio blandit luctus. Morbi sit amet metus elit. Curabitur mollis rhoncus bibendum. Phasellus eget metus eget mi porttitor lacinia ac et augue. Nulla facilisi. Nam magna turpis, auctor vel vehicula vitae, tincidunt eget nisl. Duis posuere diam lacus.</p>"; 

    $("#addContent").click(function(e){ 
     $("#right").append(addedHTML); 
     var rightHeight = $("#right").height(); 

     //Animate the left column to this height 
     $("#left").animate({ 
      height: rightHeight 
     }, 1500); 
    });}); 

とCSSです。これを行うと、divの新しい高さがグラブされ、その高さにアニメートされます。アニメーションにイージングを追加したり、スピードを変えて少し磨かれたりすることもできます。

こちらがお役に立てば幸いです。

+0

http://jsbin.comにコードを入力し、保存された公開URLにリンクすることで、OPにライブデモを提供することができます –

+0

ああ、ありがとう、チップありがとう。それは私が上でやったことよりはるかに簡単に聞こえます:) – Nooshu

+0

ここではjsbinのバージョンhttp://jsbin.com/uyoxiです。私は私の開発版では、左の列の下部に画像を添付しているが、コードを編集する場所を参照する必要があります。ふわふわ! – Nooshu

1

コンテントの高さに応じて(オーバーフロー隠しで)コンテンツdivのコンテナを使用し、そのサイズを変更して、何をしようとしているのでしょうか?

+0

OKですが、実際に理解する必要があるサイズ変更をアニメーション化するにはどうすればいいですか。 – MrFidge

0

私は上記の答えに同意します。イメージをコンテナに背景イメージとして適用し、次にコンテナをアニメートすることができます。そうすれば、背景画像はコンテナに移動します(下にそれを固定していると仮定します)。

+0

ああ、私はおそらくより具体的なはずです - 画像を表示するコードをここに入れましたが、時にはフラッシュファイルでなければならないので、背景:url()プロパティは使用できません。 – MrFidge

関連する問題