包含3张幻灯片的内容滑块



我正在使用jQuery创建一个自定义内容滑块。请看这里的小提琴以获得一个工作示例。在这个例子中,我只有2张幻灯片。单击绿色按钮后,幻灯片将滑到下一个。

我想在此添加更多幻灯片,并单击按钮滑动到每个幻灯片(没有上一个按钮)。当前jQuery函数对下一个div的id进行了硬编码。现在,当我添加更多幻灯片时,这种方法将无效。我不知道如何编写一个函数,比如检测您所在的当前div,然后单击下一个,转到下一个。我怎样才能做到这一点?

谢谢。

我已经在下面发布了代码。

HTML

<div id="main-slider-space">
    <div class="slider-wrapper">
        <div id="slide1" class="main-slide">
        </div><!-- end of slide1 -->   
        <div id="slide2" class="main-slide">
        </div><!-- end of slide2 -->   
    </div> <!-- end of slider-wrapper -->   
</div><!-- end of main-slider-space -->
<div id="main-slider-next" class="slider-buttons"><a class="active" href="#"></a></div>

CSS

#main-slider-space {
    overflow:hidden;
    width:600px;
    height:300px;
    background-color:#C36;
    margin-left:50px;
}
.slider-wrapper {
    position:relative;
    left:0;
    width:3000px;
    height:100%;
}
.main-slide {
    width:600px;
    height:100%;
    float:left;
}
#slide1 { background-color:#5FF; }
#slide2 { background-color:#F5F; }
.slider-buttons {
    position:absolute;
    width:30px;
    height:30px;
}
.slider-buttons:hover { cursor:pointer; }
#main-slider-next {
    background-color:#99CC66;
    right:30px;
    top:50%;
}

jQuery

function goto(id, t){
    $(".slider-wrapper").animate({"left": -($(id).position().left)}, 600);
}
$(document).ready(function(e) {
   $('#main-slider-next').click(function(e) {
        e.preventDefault();
        goto('#slide2', this);
        return false;
    }); 
});

Fiddle

我会使用css制作动画,以下是我在您的中更改的内容:

.main-slide {
    position:absolute;
    width:600px;
    height:100%;
    -webkit-transition:left 0.5s linear;
    -moz-transition:left 0.5s linear;
    -o-transition:left 0.5s linear;
    transition:left 0.5s linear;
}
.main-slide:not(.current){
    left:600px;
}
.main-slide.current{
    left:0px;
}

然后在您的点击处理程序中,只需更改当前元素的类:

$(document).ready(function(e) {
   $('#main-slider-next').click(function(e) {
        e.preventDefault();
        next();
        return false;
    }); 
});
function next(){
    var cur = $(".slider-wrapper").children(".current");
    var next = cur.next(".main-slide");
    if(next.length) {
        cur.removeClass("current");
        next.addClass("current");
    }
}

这是我所做的事http://jsfiddle.net/NeekGerd/rhXZT/1/

如果你想保留上一张幻灯片,只需删除以下行:

cur.removeClass("current");

相关内容

  • 没有找到相关文章

最新更新