Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Меняющиеся картинки (https://javascript.ru/forum/misc/10855-menyayushhiesya-kartinki.html)

ber104 24.07.2010 18:44

Меняющиеся картинки
 
Здравствуйте
Подскажите пожалуйста как сделать чтобы при нажатие на кнопку, картинка менялась на следующею? И как только дойдешь до последний картинки, все начиналось заново.
Заранее спасибо.

exec 24.07.2010 19:08

function toggleImage( a ) {
	var images = [ '1.png', '2.png', '3.png' ];
	a.src = images[ images.indexOf( a.src ) + 1 ];
}


toggleImage( this );

ber104 24.07.2010 19:28

Спасибо!!

ber104 24.07.2010 19:36

Вот только почему как-бы есть 4 картинка которая не показывает?
Как исправить?

exec 24.07.2010 19:54

function toggleImage( a ) {
	var images = [ '1.png', '2.png', '3.png' ];
	a.src = images[ images.indexOf( a.src ) == images.length ? 0 : images.indexOf( a.src ) + 1 ];
}

ber104 24.07.2010 20:54

также...
Можно исправить?

рони 25.07.2010 06:13

exec,
indexOf не работает для массивов в Internet Explorer, в других браузерах indexOf возвращает индекс (если найдено или -1) индекс не может равнятся длине массива - максмимум длина массива минус один
Цитата:

Сообщение от exec
images.indexOf( a.src ) == images.length

как вариант можно так
var images = ["1.png", "2.png", "3.png"];

function toggleImage(a) {
    images.push(images.shift());
    a.src = images[0]
};

ber104 25.07.2010 08:52

Спасибо огромное! Все работает!

ber104 25.07.2010 09:04

А можно ли сделать чтобы они назад шли, предыдущие показывали?

x-yuri 25.07.2010 09:08

function nextImage( a ){
    if( ! nextImage.images ){
        nextImage.images = [...];
        nextImage.i = 0;
    }
    nextImage.i = (nextImage.i+1) % nextImage.images.length;
    a.src = nextImage.images[nextImage.i];
}


Часовой пояс GMT +3, время: 10:34.