-1

シンプルなフェード画像回転子を求めるこの古い投稿を見つけました:

シンプルなフェードJavaScript画像回転子を探しています

そして私が探していたものを見つけました:

$(function() {
$('#fader img:not(:first)').hide();
$('#fader img').css('position', 'absolute');
$('#fader img').css('top', '0px');
$('#fader img').css('left', 'auto');
$('#fader img').css('right', 'auto');
//$('#fader img').css('left', '50%');
$('#fader img').each(function() {
    var img = $(this);
    $('<img>').attr('src', $(this).attr('src')).load(function() {
        //img.css('margin-left', -this.width / 2 + 'px');
    });
});

var pause = false;

function fadeNext() {
    $('#fader img').first().fadeOut().appendTo($('#fader'));
    $('#fader img').first().fadeIn();
}

function fadePrev() {
    $('#fader img').first().fadeOut();
    $('#fader img').last().prependTo($('#fader')).fadeIn();
}

$('#fader, #next').click(function() {
    fadeNext();
});

$('#prev').click(function() {
    fadePrev();
});

$('#fader, .arwBtn').hover(function() {
    pause = true;
},function() {
    pause = false;
});

function doRotate() {
    if(!pause) {
        fadeNext();
    }    
}

var rotate = setInterval(doRotate, 4000);

});

これは元のフィドルでした

http://jsfiddle.net/jtbowden/UNZR5/1/

私はすでにそれを適応させるのにいくらかの時間を費やしています (jquery プログラマーではありません:/)。追加する必要があるのは、各画像にキャプションを追加することだけです。誰かが同じコードにキャプションを追加するのを手伝ってくれますか?

心から感謝する : )

4

1 に答える 1

0

これ以上 CSS を強化する必要がありますが、要求どおりに機能しています

http://jsfiddle.net/dU93C/

CSS

#fader {
    position: relative; 
    width:500px;
    height: 400px;
}

#fader div{
    position: relative; 
    height: 400px;
    width:400px;
    overflow:hidden;
    margin:0 auto;
}

#fader strong{
    display:block;
    position: absolute; 
    width:100%;
    top:0;
    left:0;
    Background:#333;
    Color:#fff;
    padding:5px;
    opacity:0.7;
    filter:alpha(opacity=70); 
}

.button {
    background-color: green;
    width: 50px;
    height: 30px;
    font-size: 20px;
    line-height: 30px;
    text-align: center;
    position: absolute;
    top: 30px;  
}

#next {
    right: 0;   
}

#prev {
    left: 0;  
}

HTML

<div id="fader">
    <a class="button" href="#" id="next">Next</a>
   <a class="button" href="#" id="prev">Prev</a>

    <div>
        <strong>Image 1</strong>
    <img src="http://dummyimage.com/600x400/000/fff.png&text=Image1"/>
    </div>
    <div>
        <strong>Image 2</strong>
    <img src="http://dummyimage.com/200x400/f00/000.jpg&text=Image2"/>
        </div>
    <div>
        <strong>Image 3</strong>
    <img src="http://dummyimage.com/100x100/0f0/000.png&text=Image3"/>
        </div>
    <div>
         <strong>Image 4</strong>
    <img src="http://dummyimage.com/400x400/0ff/000.gif&text=Image4"/>
        </div>
    <div>
        <strong>Image 5</strong>
    <img src="http://dummyimage.com/350x250/ff0/000.png&text=Image5"/>
        </div>

</div>

JS

$(function() {
    $('#fader div:not(:first)').hide();

    var pause = false;

    function fadeNext() {
        $('#fader div').first().fadeOut().appendTo($('#fader'));
        $('#fader div').first().fadeIn();
    }

    function fadePrev() {
        $('#fader div').first().fadeOut();
        $('#fader div').last().prependTo($('#fader')).fadeIn();
    }

    $('#fader, #next').click(function(e) {
        fadeNext();
        e.preventDefault()
    });

    $('#prev').click(function() {
        fadePrev();
    });

    $('#fader, .button').hover(function() {
        pause = true;
    },function() {
        pause = false;
    });

    function doRotate() {
        if(!pause) {
            fadeNext();
        }    
    }

    var rotate = setInterval(doRotate, 2000);
});
于 2013-08-18T00:27:08.083 に答える