如何用自动时间改变班级

时间:2012-12-09 06:49:44

标签: jquery html css slide

HTML

<ul class="slider">
   <li>Lipsum</li>
    <li>lipsum</li>
    <li>lipsum</li>
     <li>lipsum</li>
</ul>

CSS

.active{
    color:#9c0;
}

javascript(jquery)

$(document).ready(function(){
        $(".slider li:first-child").addClass("active");
        $("li").click(function () {
         $(".active").removeClass("active");
         $(this).addClass("active");

    });

});

在页面加载第一个li get类激活,点击每个li它的get class激活并删除其他活动类。我想让班级自动更改,如幻灯片,我怎么能实现它。

http://jsfiddle.net/awkTU/

4 个答案:

答案 0 :(得分:2)

HTML:

<ul class="slider">
 <li>Hong Kong - Lorem ipsum dolor sit amet consectetur adipiscing...</li>
 <li>Hong Kong - Lorem ipsum dolor sit amet consectetur adipiscing...</li>
 <li>Hong Kong - Lorem ipsum dolor sit amet consectetur adipiscing...</li>
 <li>Hong Kong - Lorem ipsum dolor sit amet consectetur adipiscing...</li>
 <li>Hong Kong - Lorem ipsum dolor sit amet consectetur adipiscing...</li>
 <li>Hong Kong - Lorem ipsum dolor sit amet consectetur adipiscing...</li>
</ul>​

JavaScript的:

$(document).ready(function() {

    // Cache all list items
    var $liCollection = $(".slider li");

    // Cache the first list item for later use
    var $firstListItem = $liCollection.first();

    // Give the first list item the active state
    $liCollection.first().addClass("active");

    // Each 500 ms
    setInterval(function() {

        // Get the active list item
        var $activeListItem = $(".active")

        // Remove its active state
        $activeListItem.removeClass("active");

        // Try to find the next list item
        var $nextListItem = $activeListItem.closest('li').next();

        // If the next list item (jQuery object) length property is 0
        // (this means that this list item was the last in the list)
        if ($nextListItem.length == 0) {

            // The next list item is actually the first list item
            $nextListItem = $firstListItem;
        }

        $nextListItem.addClass("active");
    }, 500);
});​

CSS:

.active{
    color:#9c0;
}

Live Demo

答案 1 :(得分:2)

这有用吗:

$(document).ready(function(){
        $(".slider li:first-child").addClass("active");
        setTimeout(autoAddClass, 1000);
});

function autoAddClass(){
    var next = $(".active").removeClass("active").next();
    if(next.length)
        $(next).addClass('active');
    else
        $('.slider li:first-child').addClass('active');
    setTimeout(autoAddClass, 1000);
}

答案 2 :(得分:0)

$(document).ready(function(){
    setInterval(function(){
if($("#last").hasClass('active'))
{
$("#last").removeClass('active');
$("#first").addClass('active');
}
$("li.active").next().addClass("active").prev().removeClass("active");
},2000);  
});
.active {
    color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<body>
<ul>
<li id="first" style="display:none"></li>
<li  class="active">1111</li>
<li>2222</li>
<li>3333</li>
<li id="last" >4444</li>
</ul>
<br>

<lable style="border:1px solid black;border-radius:5px;background-color:gray">class cycling through li elements</lable>

</body>

答案 3 :(得分:0)

只需添加计数器并使用:eq()选择器

var $item= $(".item");
$item.first().addClass("active");
var count = 0;
setInterval(function() {
    $(".item:eq("+count+")").removeClass("active");
    if (count < 2) {
        count++
    }else {
        count = 0
    }
    $(".item:eq("+count+")").addClass("active");
}, 1000);