2012-07-05 3 views
0

Итак, у меня есть изображение (id = "слайд-шоу") в разделе моего контента на моем сайте. Я пытаюсь создать цикл, который чередует изображение src с помощью JQuery. Вот код, который у меня есть. Кажется, что он проходит, но единственное изменение src, которое он показывает, является последним. В результате glossy.jpg - единственное изображение, которое я вижу. Я знаю, что это должно работать в некоторой степени, поскольку glossy.jpg не является исходным src, который я установил. Как только я получу каждую картинку, чтобы показать, что я буду убирать остальную часть кода. Любые ответы приветствуются =)Использование цикла JQuery для чередования изображения scr

$(document).ready(function() { 

    for (i = 1; i <= 100; i++){ 
    $("#slideshow").attr("src", "Images/image1.jpg").fadeTo(3000, 1.00); 
    $("#slideshow").fadeTo("slow", 0.00); 
    $("#slideshow").attr("src", "Images/image2.jpg").fadeTo(3000, 1.00); 
    $("#slideshow").fadeTo("slow", 0.00); 
    $("#slideshow").attr("src", "Images/glossy1.jpg").fadeTo(3000, 1.00); 
    $("#slideshow").fadeTo("slow", 0.00); 
    } 
    }); 
+0

в коде выше цикла не делает ничего, но работает, что же блок кода снова и снова. Он управляет этими тремя процессами одновременно не один за другим. –

+0

Спасибо, Марк, я не очень много кодировал с помощью JQuery. Однако я не понимаю, почему код не выполняется по строкам внутри цикла. Я делаю здесь очень большую ошибку? :/ –

+1

Вы не говорите ему ждать. Поэтому он просто запускает их одновременно (x100). Ответ ниже - способ сделать это. Храните изображения в массиве, а затем прокручивайте их через заданные интервалы. –

ответ

3

Рассмотрите этот код для изображения, которое вы делаете.

var images = new Array ('test1.png', 'test2.png', 'test3.png'); 
var index = 1; 

function rotateImage() 
{ 
    $('#myImage').fadeOut('fast', function() 
    { 
    $(this).attr('src', images[index]); 

    $(this).fadeIn('fast', function() 
    { 
     if (index == images.length-1) 
     { 
     index = 0; 
     } 
     else 
     { 
     index++; 
     } 
    }); 
    }); 
} 

$(document).ready(function() 
{ 
    setInterval (rotateImage, 2500); 
}); 

И это будет HTML-

<div id="test"> 
    <img id="myImage" src="test1.png" alt="image test" /> 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p> 
</div> 

Так как вы могли бы использовать массивы при сохранении URL это в них, а затем так же самое вращение с помощью setInterval() функции.

Referance: www.burnmind.com

+0

Спасибо за ответ, именно то, что я искал! =) –

+0

@BarryDelaney Тогда я предполагаю, что вы согласитесь с моим ответом :) .... но так или иначе это так, как вы должны Iterate.SInce в последнем примере каждый цикл цикла был вызван, каждое изображение было повторно назначено. :) –

+1

Yup Я дал вам зеленый тик =) Большое спасибо, я обязательно отвечу на совет. –

Смежные вопросы