2011-02-01 3 views
0

Во-первых, я не очень хорошо знаком с javascript, таким образом я здесь. У меня есть этот код для моего сайта, чтобы нарисовать случайное изображение. Работая над этим, как я могу заставить изображения не повторять? Спасибо, в adv! Код:случайное изображение; не повторяя?

<script type="text/javascript"> 

var banner_list = ['http://i1233.photobucket.com/albums/ff389/lxluigixl/Cargo/LM_LogoMark4-4-2.gif', 'http://i1233.photobucket.com/albums/ff389/lxluigixl/Cargo/logobg_dome.png', 'http://i1233.photobucket.com/albums/ff389/lxluigixl/Cargo/logobg_brain.png']; $(document).ready(function() { var ran = Math.floor(Math.random()*banner_list.length); 
$(".logobg img").attr(banner_list[ran]); 
}); $(document).bind("projectLoadComplete", function(e, pid){ 
var ran = Math.floor(Math.random()*banner_list.length); 
$(".logobg img").attr("src", banner_list[ran]); 
}); </script> 

ответ

0

После отображения изображения склеить его из массива, вы можете использовать banner_list.splice(ran, 1);. Аргументы: .splice(index, howManyToRemove, howManyToInsert). Вставка необязательна, поэтому вы можете просто использовать сплайс, чтобы начать с индекса отображаемого изображения и удалить его. Удостоверьтесь, что не удаляйте его, пока не закончите со ссылкой на него.

+0

Спасибо, Роберт. Хотя мне действительно нужен кто-то со временем, чтобы написать кусок кода для меня. Я не настолько разбираюсь в Java. Я пытался понять это уже несколько дней, но безрезультатно. – luigi

+0

Это код. 'banner_list.splice (ran, 1);' Положите это сразу после того, как вы закончите использовать изображение через массив, что в вашем примере сразу после установки src изображения. Также Java сильно отличается от Javascript, для дальнейшего использования. – Robert

+0

О, вау, большое спасибо Роберту. Я графический дизайнер, и, как вы можете видеть, я совершенно незнаю, когда дело доходит до программирования. Спасибо за разъяснения;) – luigi

0

Вы можете использовать Array.splice(), как предлагает Robert с помощью 2 массивов. Один для неработающих и один для использованных изображений. Проверьте мои JSfiddle.

var images = ["http://www.fowkesauto.com/products_pictures/nutsbolt.jpg", 
       "http://i01.i.aliimg.com/photo/v0/114511763/Fasteners_Bolts_and_Nuts.jpg", 
       "http://us.123rf.com/400wm/400/400/DLeonis/DLeonis0810/DLeonis081000018/3706757-bolts-and-nuts-on-white.jpg", 
       "http://static3.depositphotos.com/1003288/173/i/950/depositphotos_1737203-Nuts-and-bolts.jpg"], 
    usedImages = []; 

setInterval(function() {changeImage();},500); 

var changeImage = function() { 
    var index = Math.floor(Math.random() * (images.length)), 
     thisImage = images[index]; 

     usedImages.push(thisImage); 
     images.splice(index, 1); 

     if (images.length < 1) { 
      images = usedImages.splice(0, usedImages.length); 
     } 

     $("#image").attr("src", thisImage); 
} 
Смежные вопросы