jQuery 幻灯片例子

1.例子:幻灯片

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PPT</title>
<script type="text/javascript" src="../jQuery库/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="../CSS3/PPT.css">
<script type="text/javascript">

$(function(){

    var $stop = $('.ppt_con') /*鼠标移动停止或运动变量*/
    var $li = $('.pages li'); /*获取ul的li*/
    var $len = $li.length;    /*li个数*/
    /*alert($len);*/
    var $points = $('.points'); /*小圆点ul*/

    var nowli = 0;              /*当前页面数*/
    var leaveli = 0;            /*离开页面数*/

    var $prev = $('.prev');     /*获取向前按钮*/
    var $next = $('.next');     /*获取向后按钮*/

    var timer = null;           /*定时器变量*/

    var ismove = false;         /*阻止暴力操作变量*/

    /*动态添加li,根据图片数量添加小圆点*/
    for(var i=0;i<$len;i++){    
        var $newli = $('<li>');
        if(i==0){
            $newli.addClass('active');
        }
        $newli.appendTo($points);
    }

    /*not: 除了...,除了第一张其他靠右*/
    $li.not(':first').css({'left':1366})

    /*获取小圆点li*/
    var $pli = $('.points li');

    /*点击小圆点函数,*/
    $pli.click(function(){

        /*定位当前图片*/
        nowli = $(this).index();

        /*点击当前小圆点,返回函数*/
        if(nowli == leaveli){
            return;
        }

        /*调用move函数*/
        move();

        /*给点击的小圆点样式,同辈的去除样式*/
        $(this).addClass('active').siblings().removeClass('active');

    })

    /*向前按钮函数*/
    $prev.click(function(){

        /*防止暴力操作,开始是false跳过,赋予true卡住*/
        if(ismove){
            return;
        }
        ismove = true;

        /*同上*/
        nowli--;
        move();
        $pli.eq(nowli).addClass('active').siblings().removeClass('active');
    })

    /*向后按钮函数*/
    $next.click(function(){
        if(ismove){
            return;
        }
        ismove = true;
        nowli++;
        move();
        $pli.eq(nowli).addClass('active').siblings().removeClass('active');
    })

    /*定时器,限时操作*/
    timer = setInterval(autoplay,3000)
    /*鼠标移进停止*/
    $stop.mouseenter(function(){
        clearInterval(timer);
    })
    /*鼠标移出继续*/
    $stop.mouseleave(function(){
        timer = setInterval(autoplay,3000);
    })

    /*播放函数*/
    function autoplay(){
        nowli++;
        move();
        $pli.eq(nowli).addClass('active').siblings().removeClass('active');
    }

    /*移动函数*/
    function move(){
        /*极端情况一:第一与第四的循环*/
        if(nowli<0){
            nowli = $len-1;
            leaveli = 0;
            $li.eq(nowli).css({'left':-1366});
            $li.eq(nowli).animate({'left':0});
            $li.eq(leaveli).animate({'left':1366},function(){
                /*移动后,防暴力变量置false*/
                ismove = false;
            });

            leaveli = nowli;
            return;
        }
        /*极端情况二:第四与第一的循环*/
        if(nowli>$len-1){
            nowli = 0;
            leaveli = $len-1;
            $li.eq(nowli).css({'left':1366});
            $li.eq(nowli).animate({'left':0});
            $li.eq(leaveli).animate({'left':-1366},function(){
                ismove = false;
            });

            leaveli = nowli;
            return;
        }
        /*向前点击小圆点*/
        if(nowli>leaveli){
            $li.eq(nowli).css({'left':1366});
            $li.eq(leaveli).animate({'left':-1366});

        }
        /*向后点击小圆点*/
        else{
            $li.eq(nowli).css({'left':-1366});
            $li.eq(leaveli).animate({'left':1366});

        }
        $li.eq(nowli).animate({'left':0},function(){
                ismove = false;
            });
        leaveli = nowli;
    }

})
</script>

</head>

<body>

<div class="ppt_con">
    <ul class="pages">
        <li><a href="#"><img src="../images/12.png" alt="微笑"></a></li>
        <li><a href="#"><img src="../images/9.png" alt="惊讶"></a></li>
        <li><a href="#"><img src="../images/10.png" alt="回眸"></a></li>
        <li><a href="#"><img src="../images/11.png" alt="小提琴"></a></li>
    </ul>
    <div class="prev">←</div>
    <div class="next">→</div>
    <ul class="points"></ul>
</div>

</body>
</html>

CSS文件:

/ CSS Document /
body,ul{

margin: 0;
padding: 0;

}
/父级div/
.ppt_con{
width: 1366px;
height: 768px;
position: relative;
overflow: hidden;
}
/图片ul/
.pages{
width: 1366px;
list-style: none;
}
/图片li/
.pages li{
position: absolute;
left: 0;
top: 0;
}
/向前div/
.prev{
width: 30px;
height: 50px;
background-color: #9C9B9B;;
/float: left;/
position: fixed;
left: 20px;
top: 50%;
margin-top: -25px;
opacity: 0.3;
filter: alpha(opacity=30);
font-size: 30px;
text-align: left;
line-height: 50px;
color: #000000;
cursor: pointer;

}
.prev:hover{
opacity: 0.8;
}
/向后div/
.next{
width: 30px;
height: 50px;
background-color: #9C9B9B;;
/float: left;/
position: fixed;
right: 20px;
top: 50%;
margin-top: -25px;
opacity: 0.3;
filter: alpha(opacity=30);
font-size: 30px;
text-align: left;
line-height: 50px;
color: #000000;
cursor: pointer;

}
.next:hover{
opacity: 0.8;
}
/小圆点ul/
.points{
width: 100px;
height: 20px;
position: fixed;
bottom: 20px;
left: 50%;
margin-left: -50px;
list-style: none;
}
/小圆点li/
.points li{
width: 13px;
height: 13px;
border-radius: 50%;
border: 1px solid #666;
margin: 0 5px;
background-color: #555555;
float: left;
}
/jQuery操作小圆点样式/
.active{
opacity: 0.3;
}

jQuery 幻灯片例子

猜你喜欢

转载自blog.51cto.com/13742773/2342051