使用addClass / removeClass和CSS Transitions的简单jQuery幻灯片

时间:2012-01-17 17:49:59

标签: jquery css slideshow css-transitions

我正在尝试制作最简单的jQuery幻灯片 可能。我做了以下小提琴来展示我的进步

我似乎无法同时移开我的脑袋 并添加类以达到预期的效果

检查出来:

http://jsfiddle.net/whiteb0x/pMMa8/

2 个答案:

答案 0 :(得分:3)

这是使用CSS3过渡的代码:

$(document).ready(function() {

function play() {
    setInterval(function(){
        var next = $(".ad .active").removeClass("active").next("img");
        if (!next.length) {
            next = $(".ad img:first");
        }
        next.addClass("active");
    }, 3000);
}
play();

});

一个有效的jsFiddle:http://jsfiddle.net/jfriend00/8frVL/

注意:这只会添加/删除该类。它不需要改变DOM中图像的位置(就像你在做的那样)。

使用此CSS:

.ad {
    height:300px; 
    width:250px; 
    margin:0 1em 1em 0; 
    position:relative;
}

.ad img {
    position: absolute;
    transition:opacity 1s linear; 
    -moz-transition:opacity 1s linear; 
    -webkit-transition:opacity 1s linear;
}

.ad img {
    opacity: 0; 
}

.ad img.active{
    opacity: 1;
}

答案 1 :(得分:1)

嗯......如果您正在寻找最简单的幻灯片 ,请查看我之前写过的那篇:http://jsfiddle.net/KeesCBakker/uvWJE/

非常简单。

HTML:

<ul>
    <li><img src="http://farm1.static.flickr.com/134/328919543_a01d511076_z.jpg"/></li>
    <li><img src="http://farm1.static.flickr.com/138/328919326_6b16bce915_z.jpg"/></li>
    <li><img src="http://farm1.static.flickr.com/142/328917731_13472ed905_z.jpg"/></li>
</ul>

的CSS:

li  { display:inline-block; width:500px; } 
img { width:100%; }   
ul  { height:300px; overflow:hidden; }

JQuery的:

var $ul = $('ul');

$('li:not(:first)', $ul).fadeOut();

window.setInterval(function(){        

   $('li:first').fadeOut(
        function(){
            $ul.append($(this));
            $('li:first').fadeIn();   
        }
    );
}, 4000);