创建自定义Jquery滑块

时间:2012-07-22 23:09:39

标签: jquery html css

以下是我目前的情况:http://jsfiddle.net/6j4cT/3/

很抱歉没有粘贴代码,因为这篇文章中添加了太多内容。

首先,我到目前为止的JQuery没有选择“新闻项目”中的第一个LI并添加“活动”类。

此外,如果有人想将我的代码重写为更干净的格式,欢迎您这样做。

非常感谢!

2 个答案:

答案 0 :(得分:3)

只需将班级名称active提供给第一个li元素:

<ul id="news-items">
    <li class="active">
        <a href="#">Node 1</a>
    </li>
    <li>
        <a href="#">Node 2</a>
    </li>
</ul>

参考:jsFiddle


状态更新:jsFiddle Rev 2

您也可以使用jQuery添加类:

var periodToChangeSlide = 5000;
var pp_slideshow = undefined;
var currentPage = 0;
$('#news-items li:first').addClass('active');

通过消息请求重新修订:jsFiddle Rev 4

var periodToChangeSlide = 5000;
var pp_slideshow = undefined;
var currentPage = 0;
$('#news-feature-img-wrap li').css('display','list-item').slice(1).css('display','none');
$('#news-items li:first').addClass('active');

根据您的消息评论,新添加的内容仅会针对第一个项目设置display:list-item,同时为剩余的项目设置display:none,因为已经通过jQuery .slice()切断了方法

答案 1 :(得分:1)

几天后回到SO :)解决方案:工作演示 - http://jsfiddle.net/qJea8/http://jsfiddle.net/qJea8/show

现在,当您点击Node 1时,行为将转到第一张幻灯片,依此类推下一张幻灯片。

罪魁祸首是:var index = $(this).parent().index();更改为var index = $(this).index();,因为父母将始终返回相同的索引。

休息我希望它有助于事业。 :)

<强>代码

// News Article Slideshow
var periodToChangeSlide = 5000;
var pp_slideshow = undefined;
var currentPage = 0;
$("#news-feature-wrap #news-items li").click(function() {
    $(this).parent().addClass('active');
    $(this).parent().siblings().removeClass('active');

    var index = $(this).index();
    var toShow = $("#news-feature-wrap #news-feature-img-wrap li").eq(index);
    toShow.show();
    toShow.siblings().hide();
    currentPage = index;
    $.stopSlideshow();
});

$.startSlideshow = function() {
    if (typeof pp_slideshow == 'undefined') {
        pp_slideshow = setInterval($.startSlideshow, periodToChangeSlide);
    } else {
        $.changePage();
    }
}

$.stopSlideshow = function() {
    clearInterval(pp_slideshow);
    pp_slideshow = undefined;
}
$.changePage = function() {
    var numSlides = $('#news-feature-wrap #news-feature-img-wrap li').length;
    currentPage = (currentPage + 1) % numSlides;
    var menu = $('#news-feature-wrap #news-items li').eq(currentPage);
    menu.addClass('active');
    menu.siblings().removeClass('active');

    var toShow = $("#news-feature-wrap #news-feature-img-wrap li").eq(currentPage);
    toShow.show();
    toShow.siblings().hide();
}

$.startSlideshow();​

工作形象

enter image description here