0

jQueryを使用して、キャプション付きの画像スライドショーをセットアップしました。画像全体とキャプション div は、リンクされたアンカーで囲まれています。なんらかの理由で、スライドショー機能は正常に機能しますが、アンカーは最後のセットと同じままです。つまり、以下の例を使用すると、スライドショーのコンテンツは「shows/」にのみリンクします。

<div id="mainfeature"> 
        <a href="http://www.google.com" class="show feature">
        <img src="http://union.ic.ac.uk/arts/mtsoc/wp-content/uploads/2009/07/sweetcharity_front.png" />
        <div class="caption">
            <span class="tag">2009 Tour Show</span>
            <span class="title">Sweet Charity</span>
            <span class="detail">29th July until 8th August</span>
        </div></a>
        <a href="shows/" class="feature">
        <img src="http://union.ic.ac.uk/arts/mtsoc/wp-content/gallery/2009-forum/Picture%20044.jpg" width="650px" />
        <div class="caption">
            <span class="tag">2009 Spring Show</span>
            <span class="title">A Funny Thing Happened on the Way to the Forum</span>
            <span class="detail"></span>
        </div></a>
</div>

http://union.ic.ac.uk/arts/mtsoc/で実際の例を参照してください。

ここに行って掘り下げる必要がないように、スライドショーの JavaScript を次に示します。

function slideShow() {

    //Set the opacity of all images to 0
    $('#mainfeature a').css({opacity: 0.0});

    //Get the first image and display it (set it to full opacity)
    $('#mainfeature a:first').css({opacity: 1.0});

    //Set the caption background to semi-transparent
    $('#mainfeature .caption').css({opacity: 0.7});

    //Call the gallery function to run the slideshow
    setInterval('main_gallery()',8000);
}

function main_gallery() {

    //if no IMGs have the show class, grab the first image
    var current = ($('#mainfeature a.show')?  $('#mainfeature a.show') : $('#mainfeature a:first'));

    //Get next image, if it reached the end of the slideshow, rotate it back to the first image
    var next = ((current.next().length) ? ((current.next().hasClass('caption'))? $('#mainfeature a:first') :current.next()) : $('#mainfeature a:first'));       

    //Set the fade in effect for the next image, show class has higher z-index
    next.css({opacity: 0.0})
    .addClass('show')
    .animate({opacity: 1.0}, 1000);

    //Hide the current image
    current.animate({opacity: 0.0}, 1000)
    .removeClass('show');

    //Set the opacity to 0
    $('#mainfeature .caption').animate({opacity: 0.0}, 500);    

    //Animate the caption, opacity to 0.7
    $('#mainfeature .caption').animate({opacity: 0.7}, 1000 );
}

何か案は?

4

1 に答える 1

0

アンカーの z-index は、回転したときに変更する必要があることがわかりました。jsを変更する必要がないように、showクラスを使用してこれを行いました。

于 2009-08-14T13:54:18.050 に答える