2016-04-22 19 views
0

これまでのところ、私は非常に新しい、次のjQueryを持っています。そして、透明なフレームの中にペイントの22の画像をループさせようとしています。私は、次のjQueryコードを使用しています:jQueryシングルループ画像サイクル

function swapImages(){ 
    var $active = jQuery('#frame-gallery .active'); 
    var $next = ($active.next().length > 0) ? $active.next() : jQuery('#frame-gallery img:first'); 
    $active.removeClass('active'); 
    $next.addClass('active'); 
} 
jQuery(document).ready($startSwap = function(){ 
    // Run our swapImages() function every 5secs 
    setInterval('swapImages()', 120); 
}); 

私はてclearIntervalためう蝕場所をしようとし、これを一日だったが、それは動作しません...

+0

を$ startSwap機能は、これを実行し、それを削除し忘れたために、私の多くの試みの一つの名残です。 – Secular12

+0

最後の1秒に達するまで120msごとに画像を変更しようとしていますか?または、120msごとに22枚の画像を何度も繰り返していきたいですか? – spaceman

+0

ブートストラップの使用に興味がある場合は、カルーセルがこれを行います。ここにデモがあります:http://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_carousel_wrap_data&stacked=h –

答えて

1

をただ$next少しのためのロジックを変更します - - 次のノードが存在する場合、クラスの追加/削除のみ。そして、明確な間隔は次の存在しない場合:

var interval; 
 

 
function swapImages(){ 
 
    var $active = jQuery('#frame-gallery .active'); 
 
    
 
    if ($active.next().length > 0) { 
 
    $active.removeClass('active'); 
 
    $active.next().addClass('active'); 
 
    } else { 
 
    clearInterval(interval); 
 
    } 
 
} 
 

 
jQuery(document).ready($startSwap = function(){ 
 
    // Run our swapImages() function every 5secs 
 
    interval = setInterval(swapImages, 300); 
 
});
.active { color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<ul id="frame-gallery"> 
 
    <li class="active">a</li> 
 
    <li>b</li> 
 
    <li>c</li> 
 
    <li>d</li> 
 
    <li>e</li> 
 
    <li>f</li> 
 
    <li>g</li> 
 
</ul>

+0

ありがとう!これは完全に機能し、var intervalとinterval = setInterval(など)を除いて、これと非常によく似た何かがありました。 – Secular12