简单的淡入淡出javascript图像旋转器

时间:2013-08-18 00:00:57

标签: javascript jquery slideshow

我发现这个老帖子要求一个简单的淡入淡出图像旋转器:

Looking for a simple fade javascript image rotator

找到了我要找的东西:

$(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程序员:/) 我需要添加的是每张图片的标题。 有人可以帮我添加相同代码的字幕吗?

真的很感激:)

1 个答案:

答案 0 :(得分: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);
});