<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{font-family: "Microsoft YaHei",serif;}
        body,dl,dd,p,h1,h2,h3,h4,h5,h6{margin: 0;}
        ol,ul,li{margin: 0;padding: 0;list-style: none;}
        img{border: none}
        #wrap{
            margin: 50px auto;
            width: 660px;
            height: 500px;
        }
        #wrap .img{
            position: relative;
            width: 100%;
            height: 410px;
        }
        #wrap .img .list li{
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }
        #wrap .img .list li.show{
            display: block;
        }
        #wrap .img .list li img{
            text-align: center;
            width: 100%;
            height: 410px;
        }
        #wrap .img .dec{
            position: absolute;
            left: 0;
            width: 100%;
            height: 20px;
            color: #fff;
            line-height: 20px;
            text-align: center;
            font-size: 12px;
            background-color: rgb(0,0,0);
            background-color: rgba(0,0,0,0.5);
        }
        #wrap .img .desc1{
            top: 0;
        }
        #wrap .img .desc2{
            bottom: 0;
        }
        #wrap .img #btn div{
            position: absolute;
            top: 50%;
            width: 40px;
            height: 40px;
            margin-top: -20px;
            background-color: rgb(0,0,0);
            background-color: rgba(0,0,0,.5);
            color: #fff;
            line-height: 40px;
            text-align: center;
            font-size: 14px;
            font-weight: bolder;
            cursor: pointer;
        }
        #wrap .img #btn div.left{
            left: 0;
        }
        #wrap .img #btn div.right{
            right: 0;
        }
        #wrap .tab{
            width: 100%;
            height: 30px;
            margin-top: 20px;
            text-align: center;
        }
        #wrap .tab p{
            display: inline-block;
            width: 100px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            color: #fff;
            background-color: #999;
            font-size: 12px;
            cursor: pointer;
        }
        #wrap .tab p.active{
            background-color: #f60;
        }
    </style>
</head>
<body>
<div id="wrap">
    <div class="img">
        <ul class="list">
            <li class="show"><img src="img/1.jpg" alt=""></li>
            <li><img src="img/2.jpg" alt=""></li>
            <li><img src="img/5.jpg" alt=""></li>
            <li><img src="img/7.jpg" alt=""></li>
            <li><img src="img/8.jpg" alt=""></li>
        </ul>


        <p class="desc1 dec"><span>1</span>/5</p>
        <p class="desc2 dec">这是第一张图片</p>


        <div id="btn">
            <div class="left"> < </div>
            <div class="right"> > </div>
        </div>
    </div>
    <div class="tab">
        <p class="active">单边切换</p>
        <p>循环切换</p>
    </div>
</div>

<script>
    //获取元素
    let aBtn = document.getElementById('btn').getElementsByTagName('div'),
        aImg = document.querySelectorAll('#wrap .img .list li'),
        aDec = document.querySelectorAll('#wrap .img .dec'),
        aTab = document.querySelectorAll('#wrap .tab p'),
        oDec1 = aDec[0].getElementsByTagName('span')[0],
        oDec2 = aDec[1],
        length = aImg.length, //总的img长度
        index = 0; //定义一个变量名,让js知道我们当前显示的是哪一张
        arrText = [
            '这是第1张图片',
            '这是第2张图片',
            '这是第3张图片',
            '这是第4张图片',
            '这是第5张图片'
        ], //每个图片对应的文本描述
        bool = true, //用一个bool值,来表示tab的状态

    // 左按钮
    aBtn[0].onclick = function () {
        //alert('left')

        //let nowImg = aImg[index]; //这个变量表示当前显示的是哪个li
        //nowImg.className = ''; //把当前的li名字去掉,他就不显示了
        aImg[index].className = '';


        index --; //右边的按钮,点击切换下一张,对应的序号自增

        if(index<0){
            index = bool?0:length-1;
        }

        //let nextImg = aImg[index];  //这个变量表示下一个li
        //nextImg.className = 'show'; //给当前的li加上名字就显示了
        aImg[index].className = 'show';

        oDec1.innerHTML = index+1;//对应dec描述的变换
        oDec2.innerHTML = arrText[index];
    };

    // 右按钮
    aBtn[1].onclick = function () {
        //alert('right')

        //let nowImg = aImg[index]; //这个变量表示当前显示的是哪个li
        //nowImg.className = ''; //把当前的li名字去掉,他就不显示了
        aImg[index].className = '';


        index ++; //右边的按钮,点击切换下一张,对应的序号自增

        // 判断单边切换还是循环切换
        if(index>length-1){
            index = bool?length-1:0;
        }
        // if (index>length-1){
        //     if (bool){
        //         index = length-1;
        //     }else{
        //         index = 0;
        //     }
        // }

        // if (bool){
        //     if (index>length-1){
        //         index = length-1;
        //     }else{
        //         if (index>length-1){
        //             index = 0;
        //         }
        //     }
        // }

        //let nextImg = aImg[index];  //这个变量表示下一个li
        //nextImg.className = 'show'; //给当前的li加上名字就显示了
        aImg[index].className = 'show';

        oDec1.innerHTML = index+1;//对应dec描述的变换
        oDec2.innerHTML = arrText[index];
    };
    
    aTab[0].onclick = function () {
        aTab[0].className = 'active';
        aTab[1].className = '';
        bool = true;
    };
    aTab[1].onclick = function () {
        aTab[0].className = '';
        aTab[1].className = 'active';
        bool = false;
    }
</script>
</body>
</html>