2012-01-17 13 views
0

私はこれを検索しましたが、与えられた最善の答えは「あなたのアイテムの周りにdivを折り返してアニメーション/スクロールを追加する」ことです。私は同意する、それは私の問題の迅速な簡単な解決策になるだろうが、残念なことに、私は私divの別々のそれぞれのアニメーションを必要とする特定の問題があるので、私のdivの周りにdivをラップすることはできません。私は詳しく説明します...同じ方向に2つのdivをアニメ化する

私は、ハイライトと呼ばれるdivを持っています。このdivには、2つの行にいくつかのタイルがあり、各行に5つのタイルがあり、グリッドを形成しています。これは私が「リボン」と呼んでいるものです。私のページの一番下のパネルです。指定された幅のハイライトタイルの周囲にコンテナdivがあり、オーバーフローが隠されています。私のページャーの '前'または '次へ'ボタンを使用してください。私のコードは次のようになります:

<div class="ribbon-display"> 
     <div class="display-container clearfix"> 
     <div id="highlight"> 
     <div class="top-row clearfix">          
     <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     </div> 
     <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     </div> 
     <div id="highlight" class="new-highlight"> 
     <div class="top-row clearfix">          
     <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     </div> 
     <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     <div class="ribbon-tile"></div> 
      <div class="ribbon-tile"></div> 
     </div> 
     </div>    
    </div> 

私は何度も10タイルをロードしています。次に、「次へ」ボタンをクリックすると、次の10タイルを引き出すためのajax呼び出しが行われます。これらは、新しい 'ハイライト' divとしてコンテナdiv内のコンテンツに追加されます。したがって、私は今、お互いに隣接する10のタイルを含む2つの 'ハイライト' divを持っています。次に、jquery 'animate'関数を使用してこれらの両方を左にスクロールして、要素の '左'の位置を変更します。しかし、これを行うと、最初のハイライトパネルは隣のハイライトパネルよりも左に早くスライドします。スライドの中に隙間があることを意味します。すべてのスライドのコンテンツタイルがプリロードされ、スライドで表示/非表示になっている場合、どのようにすればよいですか。

私の質問は、どのようにしてこれらの2つのdivを同時に左にスライドさせることができますか、同じスピードで他のものの直後のもの?私が述べたように、私は....

$('#highlight').animate(
    {left:'-=971'}, 
    30000 
); 
$('.new-highlight').animate(
    {left:'-=971'}, 
    200 
); 

ように、アニメーション機能を使用して、左の位置を変えること探求し、またアニメーション機能にleftScroll用のparamaterを変更し、各ハイライトDIVの速度を変化させる試みました最初のアニメーションを遅くしてゆっくりと見せてアニメを偽装しようとする。誰でもこれをしようとした経験がありましたか? 'scrollLeft'関数を使用できますか?

ここで大変助かりましたでしょうか。事前にみんなありがとう!

クレイグ

+0

将来的には、より簡潔な質問を投稿してみてください.30行のHTMLばかげた表示は必要ありません。また、どのように動作するかについての長い話を聞く必要はありません。可能な限り少ない単語で投稿するだけで、あなたが知りたいことを正確に伝えます。 – BananaNeil

+0

申し訳ありません仲間、初めての投稿!私はあなたの批判を乗り越え、将来の投稿を改善します。ありがとう! – BarberCraig

+0

GIF、フラッシュアニメーション、またはあなたが探していることを説明するビデオを作成する方法はありますか?それは非常にあいまいなようです。 – BananaNeil

答えて

0

あなたが最初に終了と呼ばれるアニメイト方法に「終了」関数を渡すことができます。

$('#highlight').animate({left:'-=971'},30000, function(){ 
    $('.new-highlight').animate(
    {left:'-=971'}, 
    200 
); 
}); 
+0

お返事ありがとうございます。しかし、これは私が探している解決策ではありません。最初のアニメーションがアニメーション化された後、2番目のdiv(.new-highlight)のアニメーションがアニメーション化されないようにしたいのですが、#highlight divに続くdiv(.new-highlight)divを使って、遷移?私は、例を通らずに私が望むものを説明するのはかなり難しいです。誰が私が何をしているのか知っていて、これにどのように対処するか考えていますか?前もって感謝します! – BarberCraig

1

遅延機能を使用してデイジーチェーン接続することができます。

$('#highlight').animate({left:'-=971'},30000); 
$('.new-highlight').delay(30000).animate({left:'-=971'},200); 

ミリ秒であることに注意してください...アニメーションを30秒間実行しています。 :)

「これらの2つのdivを同時に左にスライドさせるにはどうすればよいのですか?

同時にまたは後で?私はあなたのアニメーションの意図が不明だとして、これらの2つの異なるもの:)

です。ここフィドルだ:) http://jsfiddle.net/NZkf8/

+0

ハハ、ええ、最初のディビジョンを遅くすることができるかどうかテストするためにアニメーションに超長時間を追加しましたので、心配しないで、私はそこに残すことはありません!! :) 私がしたいことは、これらのdivの両方を同時にアニメーション化することですが、それらを同じスピードで横断するようにします。何が起きているのか、#ハイライトdivが.newハイライトよりも速くスライドしていることです。つまり、ハイライトの間にギャップがあることを意味します。私はこのギャップを望んでいない、私は彼らがお互いの隣にスライドしたい。それは理にかなっていますか?私はこれをどのように達成することができるか知っていますか? ありがとう、 Craig – BarberCraig

+0

2つのクラスにクラスを適用してから、$( '。new-class')を実行してもかまいませんか? – BananaNeil

+0

アイテムのアニメーションをどのようにしたいのかよく分かりません。私が間違っていると私を修正してください。 両者は同じ速度で同じ速度で左に移動する必要がありますか?私はあなたのCSSコードを見ることができませんが、両方のアイテムで同じアニメーションを実行している場合、同じ速さで動くはずです。長さが移動し、移動する必要がある時間が両方で同じである限り、それらは同じようにアニメートする必要があります。あなたが1秒間に200ピクセルを移動している場合、それは2秒間に400ピクセル動くアイテムと同じ速さで動きます。 – Eirinn

0

私はあなたが探している正確に何を理解するに苦労しています...しかし、このような

O_O ..あなたが最初のdivの位置にアニメーション化するために第2のdivの原因となる間隔を設定することで、「次」のこの効果を達成することができることをその可能性:

var follow = setInterval(function(){ 
    $('.new-highlight').animate(
    {left : $('#highlight').position().left}, 
    1000 
); 
},1000) 

$('#highlight').animate(
    {left:'-=971'}, 
    30000, 
    function(){ 
    window.clearInterval(follow) 
    } 
); 

あなたがかもしれません両方の1000で遊んでみてください。あなたが2番目の500を作るなら、毎秒、2番目のものは移動する2つの間の距離の半分を移動します。

私の戦術は非常に異なっているので、私は、この独自の答えを作って、私の 前の投稿はまだこのトピックについてのヘルプ を探している人々のために有効である可能性があります。

関連する問題