jquery_3 轮播图

试验版:

每过2秒,动态切换图片

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>轮播图实现</title>
    <style type="text/css">
        /*标题样式*/
        p{
            text-align:center;
            font-size:25px;
            color:cadetblue;
            font-famliy:fantasy;
        }
        .imgbox{
            border-top:2px solid cadetblue;
            width:50%;
            height:500px;
            margin:0 auto;
        }
        .imgbox img{
            width:60%;
            height:300px;
            margin:0 auto;
            /*padding 边际,四周均涉及*/
            padding-top:30px;
            /*//图片居中*/
            display:none;
            /*text-align:center;*/
            /*vertical-align:middle;*/
        }
        .img1{
            display:block;
        }
        .img2{
            display:none
        }
        .img3{
            display:none;
            padding-bottom:30px;
        }
    </style>
</head>
<body>
<p>图片轮播</p>
<div class="imgbox">
    <img class="img-slide img1" src="img1.jpg" alt="1">
    <img class="img-slide img2" src="img2.jpg" alt="2">
    <img class="img-slide img3" src="img3.jpg" alt="3">
</div>

<script type="text/javascript">
    var index=0;
    //改变图片
    function imagecha(){
        //改变图片
        var a=document.getElementsByClassName("img-slide");//获取所有带有img-slide关键字的标签
        if(index>=a.length)
            index=0;
        for(var i=0;i<a.length;i++){
            a[i].style.display='none';
        }
        a[index].style.display='block';
        index++;
    }
    //设置定时器,每隔两秒钟切换图片
    setInterval(imagecha,2000);
</script>

</body>
</html>
View Code

正式版:

主要再添加圆圈和左右箭头手动移动轮播/自动轮播

(margin: 0 auto 水平居中显示)

part1

内容分三部分:

  • html图片布局;
  • 图片序号布局;
  • 箭头移动标签布局;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .outer{
            width:790px;
            height:340px;
            bottom:30px;
            margin:80px auto;
            position:relative;
        }

        .img li{
            position:absolute;
            list-style:none;
            top:0;
            left:0;
        }

        .num{
            /*//脱离文档流*/
            position:absolute;
            bottom:-160px;
            left:300px;
            /*background-color:#dce7f4;*/
            list-style:none;
        }

        .num li{
            display:inline-block;
            width:25px;
            height:25px;
            background-color:red;
            text-align:center;
            line-height:25px;
            border-radius:50%;
            margin-left:10px;
        }

        .outer img{
            width:790px;
            height:500px;
            margin:0 auto;
            /*padding-top:30px;*/
            /*display:none;*/
        }

        .btn{
            position:absolute;
            top:220px;
            width:30px;
            height:60px;
            background-color:lightgrey;
            color:white;

            text-align:center;
            line-height:60px;
            font-size:30px;
            opacity:0.7;
            display:none;
            /*margin-top:-30px;*/
        }

        .left{
            left:0;
        }

        .right{
            right:0;
        }

        .outer:hover .btn{
            display:block;
        }

    </style>
</head>
<body>

    <div class="outer">
        <ul class="img">
            <li><a href=""><img src="imagecha/img1.jpg" alt=""></a></li>
            <li><a href=""><img src="imagecha/img2.jpg" alt=""></a></li>
            <li><a href=""><img src="imagecha/img3.jpg" alt=""></a></li>
        </ul>

        <ul class="num">
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>

        <div class="left btn"> < </div>
        <div class="right btn"> > </div>

    </div>

</body>
</html>
View Code

part2

内容分三部分:

补充eq()指的是选取带有指定index值的元素

  • 自动轮播;
  • 手动轮播类型一(按底部数字);
  • 手动轮播类型二(按左右按键);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .outer{
            width:790px;
            height:340px;
            bottom:30px;
            margin:80px auto;
            position:relative;
        }

        .img li{
            position:absolute;
            list-style:none;
            top:0;
            left:0;
        }

        .num{
            /*//脱离文档流*/
            position:absolute;
            bottom:-160px;
            left:280px;
            list-style:none;
        }

        .num li{
            display:inline-block;
            width:25px;
            height:25px;
            background-color:white;
            text-align:center;
            line-height:25px;
            border-radius:50%;
            margin-left:20px;
        }

        .outer img{
            width:790px;
            height:500px;
            margin:0 auto;
        }

        .btn{
            position:absolute;
            top:220px;
            width:30px;
            height:60px;
            background-color:lightgrey;
            color:white;

            text-align:center;
            line-height:60px;
            font-size:30px;
            opacity:0.7;
            display:none;
            /*margin-top:-30px;*/
        }

        .left{
            left:0;
        }

        .right{
            right:0;
        }

        .outer:hover .btn{
            display:block;
        }

        .num .active{
            background-color:red;
        }

    </style>
</head>
<body>

    <div class="outer">
        <ul class="img">
            <li><a href=""><img src="imagecha/img1.jpg" alt=""></a></li>
            <li><a href=""><img src="imagecha/img2.jpg" alt=""></a></li>
            <li><a href=""><img src="imagecha/img3.jpg" alt=""></a></li>
            <li><a href=""><img src="imagecha/img4.jpg" alt=""></a></li>
            <li><a href=""><img src="imagecha/img5.jpg" alt=""></a></li>
        </ul>

        <ul class="num">
            <!--<li class="active"></li>-->
            <!--<li></li>-->
            <!--<li></li>-->
            <!--<li></li>-->
            <!--<li></li>-->
        </ul>
        <div class="left btn"> < </div>
        <div class="right btn"> > </div>
    </div>

<script src="jquery-3.5.0.js"></script>
<script>
    var i=0;
    var img_num=$(".img li").length;
    for(var j=0;j<img_num;j++){
        $(".num").append("<li></li>");
    }

    $(".num li").eq(0).addClass("active");

    //手动轮播
    $(".num li").mouseover(function(){
        var i=$(this).index();
        $(this).addClass("active").siblings().removeClass("active");
        $(".img li").eq(i).stop().fadeIn().siblings().stop().fadeOut()
    });

    //自动轮播
    var c=setInterval(imagecha_R,1500);
    function imagecha_R(){
        if(i==img_num-1){
            i=-1;
        }
        i++;
        $(".num li").eq(i).addClass("active").siblings().removeClass("active");
        $(".img li").eq(i).stop().fadeIn().siblings().stop().fadeOut()
    }

    function imagecha_L(){
        if(i==0){
            i=img_num;
        }
        i--;
        $(".num li").eq(i).addClass("active").siblings().removeClass("active");
        $(".img li").eq(i).stop().fadeIn().siblings().stop().fadeOut();
    }

    $(".outer").hover(function(){
        clearInterval(c);
    },function(){
        c=setInterval(imagecha_R,1500)
    });

    $(".right").click(imagecha_R);
    $(".left").click(imagecha_L);
    
</script>
</body>
</html>
View Code

 

posted on 2020-05-01 22:54  yukun093  阅读(224)  评论(0编辑  收藏  举报

导航