Как повернуть 4 (или более) изображения, затухающие между ними?

У меня есть 4 изображения, которые я хочу исчезать между собой в цикле. У меня есть что-то вроде следующего:

<img src="/images/image-1.jpg" id="featureImg1" />
<img src="/images/image-2.jpg" id="featureImg2" style="display:none;" />
<img src="/images/image-3.jpg" id="featureImg3" style="display:none;" />
<img src="/images/image-4.jpg" id="featureImg4" style="display:none;" />

Я готов к пересмотру HTML, хотя я не могу использовать абсолютное позиционирование в этом случае. Я использую jQuery еще где на сайте, поэтому он доступен. Мне также нужно иметь дело с тем, что изображение не загружается сразу, поскольку изображения больше.

Ответы

Ответ 1

Я очень рекомендую плагин jQuery Cycle. В этом случае он может сделать больше, чем вы ищете, но он хорошо структурирован и прост в настройке. Также есть облегченная версия под названием jQuery Cycle Lite, которая поддерживает только переходы fade.

Ответ 2

Вы можете использовать div и img, например:

<div id="featureImgContainer">
    <img src="/images/image-1.jpg" id="featureImg" />
</div>

В вашем Javascript выполните что-то вроде этого (псевдо-jQuery):

function rotateImage(newImage) {
    var oldImage = $("#featureImg").image();

    $("#featureImgContainer").css({backgroundImage: "url('" + oldImage + "')"}); // TODO Escape URL

    $("#featureImg").image(newImage).opacity(0).fadeIn();
}

В основном, мы делаем фон div "старым" изображением, а img - новый. Мы устанавливаем непрозрачность img в 0 и затухаем, так что кажется, что старое изображение затухает в новом. После затухания, div больше не отображается.

Постарайтесь правильно настроить CSS, чтобы установить ширину/высоту div и положение фона, где это необходимо.

Ответ 3

Я также нашел это расширение для jQuery: http://www.linein.org/blog/2008/01/10/roate-image-using-jquery-with-plugin/

Кажется, это довольно хорошо, хотя много кода для не слишком много.

Изменить: я также нашел Nivo Slider, который я использовал довольно часто и работал довольно хорошо. Он также имеет возможность иметь "навигацию" и предыдущие/следующие кнопки. Очень удобно.

Ответ 4

вы можете остаться с ядром jQuery и создать цикл z-index.

это можно сделать очень простым способом...