2016-07-20 12 views
4

たとえば、100%の幅と100pxの高さのdiv要素があるとします。そのdivの中には、div3要素が左に浮かんでいて、overflow-xが有効になっています。私が達成したいのは、ユーザーがこれらのdivのループをスクロールすることができることです(最後のdiv要素の後に最初の無限ループが続きます)。複数のDIV要素をスクロールする

どのようにアプローチするか?

enter image description here

+1

あなたは、古典的なスライダーの機能を記述しています。これには文字通り何百ものプラグインがあります。例えば。 Flexsliderまたはslick.js。 – MattDiMu

+0

jqueryを使いたい場合は、jquery-slider-pluginがあります。これは、http://unslider.com/でお勧めします。パラメータ '{infinite:true} 'で初期化するだけで、目的の効果が得られます。 – MattDiMu

+0

スライダには1つのdiv要素(slide1:DIV1、slide2:DIV2など)が表示されます。しかし私はそれを望んでいません。私はできるだけ多くのdiv要素を表示したい(画面の幅に応じて) – user1784025

答えて

5

あなたはここでjQueryのinsertAfterinsertBefore機能

$('.next').click(function(){ 
    var last = $('#parent').find('div').last(); 
    $('#parent').find('div').first().insertAfter(last); 
}); 

$('.prev').click(function(){ 
    var first= $('#parent').find('div').first(); 
    $('#parent').find('div').last().insertBefore(first); 
}); 

を使用することができますDEMO

+0

私のデモを確認してください –

+0

ありがとう、サー。これは素晴らしいです。 – user1784025

+0

あなたは歓迎です –

4

append/prependは、あなたが行っている方向に応じて、それぞれの最後の/最初の要素です。

jQuery(window).keyup(function(e){ 
 
    switch(e.keyCode){ 
 
    case 37: 
 
     left(); 
 
     break; 
 
    case 39: 
 
     right(); 
 
     break; 
 
    } 
 
}) 
 
var container=jQuery("#container"); 
 

 
function left(){ 
 
    container.find(".item:last").prependTo(container); 
 
} 
 

 
function right(){ 
 
    container.find(".item:first").appendTo(container); 
 
}
html,body { 
 
    width:100vw; 
 
    height:100vh; 
 
    padding:0px; 
 
    margin:0px; 
 
} 
 
#container { 
 
    width:100vw; 
 
    height:100px; 
 
    display:flex; 
 
    position:relative; 
 
} 
 

 
.item { 
 
    width:100px; 
 
    height: 94px; 
 
    margin:3px; 
 
    flex:0 1 100px; 
 
} 
 

 
.red {background:#F00;} 
 
.green {background:#0F0;} 
 
.blue {background:#00F;} 
 
.yellow {background:#FF0;} 
 
.turq {background:#0FF;} 
 
.purple {background:#F0F;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="container"> 
 
    <div class="item red"></div> 
 
    <div class="item green"></div> 
 
    <div class="item blue"></div> 
 
    <div class="item yellow"></div> 
 
    <div class="item turq"></div> 
 
    <div class="item purple"></div> 
 
</div>

+0

ありがとうございます。よく働く。 – user1784025

関連する問題