2012-01-17 5 views
1

次の矢印をクリックすると、次のイメージをスライドさせるjqueryスライダーが作成されました。今度はそれを連続して表示する必要があります(つまり、スライダーの最後の画像に到達した場合)。最初の画像は右からスクロールする必要があります。そのためにjqueryを追加しようとしました。追加しています。しかし、私は位置を印刷すると、それは古い位置を示しています。jQueryで継続的にスクロールする部分

<div id="parent"> 
<div class="child"> 
</div> 
<div class="child"> 
</div> 
<div class="child"> 
</div> 
<div class="child"> 
</div> 
</div> 
(i.e)//jQuery 
numberOfSlides = 4; //Total no of images 
$('arrow').click(function(){ 
if(currentSlide == 2) //if i am in the second slide, then append first slide to the last slide 
{ 
    $('first-child').append('parent'); // This code is for reference. not in correct syntax. 
} 
else 
{ 
    for()//loop 
    { 
    //sliding all images to the left (i.e)if the image width is 800px. then the slide animation will be -800,0,800,1600 for(slide1,slide2,slide3,slide4).so that second image will show now. 
    $('.child:nth-child('+loop_count+')').animate({'marginLeft','xxpx'}); 
    } 
} 
currentSlide++; 
}); 

正しいO/P条件は、親要素の最初の要素を追加する場合はcurrentSlide 2は、上記のコードで (slide2、slide3、slide4、slide1)ため-800,0,800,1600あります。しかし、追加された要素の位置を取得すると、-1600 px(Firebugでチェックすると、右側にdivが表示されます)が印刷されます。 1600ピクセルにする必要があります。私はmarginLeftを使って測位を行っています。

おかげ

答えて

1

http://archive.plugins.jquery.com/project/aautoscroll

または

あなたのコンテンツ要素を複製し、それらが垂直方向に隣同士にしているように、それらを合わせ、タンデムでそれらをスクロールする必要があります。現在のスクロールが機能するはずですが、ジャンプが不可視になるのは、下の要素の上端から上の要素の上端、つまり同じ見た目の部分にジャンプするからです。私は2つの要素を動かすことについて心配する必要がないように、コンテンツの両方のコピーを入れて(コンテナにもう1つのコピーを取得するだけでクローンを作成できます)、スクロールします。

本当に最適化したい場合は、下の要素のコンテンツの上端部分(ジャンプを隠すのに十分な部分)のみを表示できますが、コンテンツが本当に複雑で重い場合を除き、それは価値がありません。

関連する問題