jquery move elements into a random order
gallery, javascript, jquery, random
Solution
Ended up using this (thanks Blair!) -
/**
* jQuery Shuffle (/web/20120307220753/http://mktgdept.com/jquery-shuffle)
* A jQuery plugin for shuffling a set of elements
*
* v0.0.1 - 13 November 2009
*
* Copyright (c) 2009 Chad Smith (/web/20120307220753/http://twitter.com/chadsmith)
* Dual licensed under the MIT and GPL licenses.
* /web/20120307220753/http://www.opensource.org/licenses/mit-license.php
* /web/20120307220753/http://www.opensource.org/licenses/gpl-license.php
*
* Shuffle elements using: $(selector).shuffle() or $.shuffle(selector)
*
**/
(function(d){d.fn.shuffle=function(c){c=[];return this.each(function(){c.push(d(this).clone(true))}).each(function(a,b){d(b).replaceWith(c[a=Math.floor(Math.random()*c.length)]);c.splice(a,1)})};d.shuffle=function(a){return d(a).shuffle()}})(jQuery);
So then the only additions that need to be made to the above code are to include the script, and call the shuffle function:
<script type="text/javascript" src="js/jquery-shuffle.js"></script>
$('#tout4 img.img_lg').shuffle();
Problem
I am attempting to display a series of images in a random order. However, I do not want any single item to repeat until all items have been shown, so instead of selecting a random image from the array, I want to take the entire array, randomize it, and then select in sequence from the first to the last element. Here's my code: HTML: ``` <div id="tout4" <img src="images/gallery01.jpg" class="img_lg"/> <img src="images/gallery02.jpg" class="img_lg"/> <img src="images/gallery03.jpg" class="img_lg"/> </div> ``` and the javascript, which currently selects and displays the items in order: ``` var galleryLength = $('#tout4 img.img_lg').length; var currentGallery = 0; setInterval(cycleGallery, 5000); function cycleGallery(){ $('#tout4 img.img_lg').eq(currentGallery).fadeOut(300); if (currentGallery < (galleryLength-1)){ currentGallery++; } else { currentGallery = 0; } $('#tout4 img.img_lg').eq(currentGallery).fadeIn(300); } ``` So how do I rearrange the actual order of the images, and not just the order in which they are selected?