2011-07-10 90 views
2

我得到this基於jquery的幻燈片放映和運行很好,作者甚至把隨機設置,這是我需要的。它的效果很好,除了它不會隨機化第一張幻燈片。有任何想法嗎? 謝謝:)隨機化幻燈片上的第一張圖片?

這裏的JS:(或去original page獲取更多信息)

function slideSwitch() { 
    var $active = $('#slideshow DIV.active'); 

    if ($active.length == 0) $active = $('#slideshow DIV:last'); 

    // use this to pull the divs in the order they appear in the markup 
    // var $next = $active.next().length ? $active.next() 
    // : $('#slideshow DIV:first'); 

    // uncomment below to pull the divs randomly 
var $sibs = $active.siblings(); 
var rndNum = Math.floor(Math.random() * $sibs.length); 
var $next = $($sibs[ rndNum ]); 


    $active.addClass('last-active'); 

    $next.css({opacity: 0.0}) 
     .addClass('active') 
     .animate({opacity: 1.0}, 1000, function() { 
      $active.removeClass('active last-active'); 
     }); 
} 

$(function() { 
    setInterval("slideSwitch()", 20000); 
}); 

HTML:

<div id="slideshow"> 
    <div class="active"> 
     <img src="img/img1.jpg" /> 
    </div> 
    <div> 
     <img src="img/img2.jpg" /> 
    </div> 
    <div> 
     <img src="img/img3.jpg" /> 
    </div> 
</div> 
+0

嘗試'變量$同胞= $ active.siblings()andSelf()'選擇所有的元素。不知道這是否是問題。 –

回答

1

看起來它只是隨機化活動幻燈片中的兄弟姐妹,不包括當前的活動幻燈片,這是您加載頁面時的第一個幻燈片。您可以修復插件的代碼,或像我一樣懶,並在初始化幻燈片之前隨機化這些圖像。使用插件像一個在這裏的回答:Randomize a sequence of div elements with jQuery

0

嘗試用類似隨機:

function slideSwitch() { 
     var $active = $('#slideshow div').eq(Math.floor(Math.random() * $('#slideshow div').length); 
     $(".active").removeClass("active"); 
     $active.addClass("active"); 

     if ($active.length == 0) $active = $('#slideshow DIV:last'); 

     // use this to pull the divs in the order they appear in the markup 
     // var $next = $active.next().length ? $active.next() 
     // : $('#slideshow DIV:first'); 

     // uncomment below to pull the divs randomly 
    var $sibs = $active.siblings(); 
    var rndNum = Math.floor(Math.random() * $sibs.length); 
    var $next = $($sibs[ rndNum ]); 


     $active.addClass('last-active'); 

     $next.css({opacity: 0.0}) 
      .addClass('active') 
      .animate({opacity: 1.0}, 1000, function() { 
       $active.removeClass('active last-active'); 
      }); 
    } 

    $(function() { 
     setInterval("slideSwitch()", 20000); 
    }); 
+0

感謝您的答覆球員,我沒有試出來您的解決方案,因爲我得到了它的一個簡單的PHP工作: 替換 第一圖像DIV「 user837433

相關問題