js-原生轮播图
 <section class="banner" id="banner">
        <ul id="carousel_list" class="carousel_list">
            <li>  <img src="images/banner1.jpg" alt="">  </li>
            <li>  <img src="images/banner2.jpg" alt="">  </li>
            <li>  <img src="images/banner3.jpg" alt="">  </li>
            <li>  <img src="images/banner4.jpg" alt="">  </li>
            <li>  <img src="images/banner5.jpg" alt="">  </li>
        </ul>
        <ol class="circles" id="circle_ol">
            <li data-n='0' class="current"></li>
            <li data-n='1'></li>
            <li data-n='2'></li>
            <li data-n='3'></li>
            <li data-n='4'></li>
        </ol>
    </section>
.banner  {
    position: relative;
    overflow: hidden;
}
.banner .carousel_list {
    width: 600%;
    /* 清除浮动 */
    overflow: hidden;
    /* translateX中的百分数表示相对于它本身的宽度的多少倍 */
    /* transform: translateX(-33.333%); */
    transition: transform .5s ease 0s;
}
.banner .carousel_list li{
    float: left;
    width: 16.666%;
}
.banner .carousel_list li img {
    width: 100%;
    /* 白边的处理 */
    vertical-align: middle;
}
.banner .circles{
    width: 160px;
    height: 20px; 
    position: absolute;
    bottom: 10px;
    left: 50%;
    margin-left: -75px;
    z-index: 9999;
}
.banner .circles li {
    width: 20px;
    height: 20px;
    float: left;
    background-color:rgb(27,233,147);
    margin-right: 10px;
    border-radius: 10px;
    transition: all .5s ease 0s;  
    cursor: pointer;
}
.banner .circles li.current{
    width: 40px;
    background-color: #20BD9A  ;
}
.banner .circles li:last-child{
    margin-right: 0;
}
// 轮播图特效
(function(){
    // 获取元素
    var carousel_list = document.getElementById('carousel_list')
    var left_btn = document.getElementById('left_btn')
    var right_btn = document.getElementById('right_btn')
    var banner = document.getElementById('banner')
    var circle_ol = document.getElementById('circle_ol')
    var circle_lis = circle_ol.getElementsByTagName('li') 
    //  克隆第一张li
    var clone_li = carousel_list.firstElementChild.cloneNode(true)
    // 插入元素
    carousel_list.appendChild(clone_li)
    // 当前显示的图片序号 从0 开始
    var idx = 0
    // 节流锁
    var lock = true
    // 右按钮事件监听
    right_btn.onclick = right_btn_handler
    // 右按钮的处理函数
    function right_btn_handler(){ 
        // 判断节流锁状态 如果是关闭 就什么都不做
        if(!lock) return ;
        // 关锁
        lock = false
        // 加上过渡
        carousel_list.style.transition = 'transform .5s ease 0s' 
        //  序号 + 1
        idx++
        // 拉动
        carousel_list.style.transform = 'translateX(' + -16.66 * idx + '%)'
        // 判断是否为最后一张  如果是 就瞬间移动回来
        if(idx > 4){
            setTimeout(function(){
                // 去掉过渡
                carousel_list.style.transition = 'none'
                // 删除transform 属性
                carousel_list.style.transform = 'none'
                // 全局序号变为0
                idx = 0
            },500)
        } 
        // 设置小圆点
        setCircles()
        // 开锁 动画结束之后
        setTimeout(function(){
            lock = true
        },500)
    }
    // 左按钮事件监听
    left_btn.onclick = function(){ 
         // 判断节流锁状态 如果是关闭 就什么都不做
         if(!lock) return ;
         // 关锁
         lock = false
        // 判断是否为最后一张  如果是 就瞬间移动回来
        if(idx == 0){ 
            // 去掉过渡
            carousel_list.style.transition = 'none' 
            // 拉到最后
            carousel_list.style.transform = 'translateX(' + -16.66 * 5 + '%)' 
            // 改变序号
            idx = 4
            setTimeout(function(){
                // 加上过渡
                carousel_list.style.transition = 'transform .5s ease 0s' 
                carousel_list.style.transform = 'translateX(' + -16.66 * 4 + '%)'  
            },0)
        }else{
            //  序号 + 1
            idx--
            // 拉动
            carousel_list.style.transform = 'translateX(' + -16.66 * idx + '%)'
        }
        // 设置小圆点
        setCircles() 
        // 开锁 动画结束之后
        setTimeout(function(){
            lock = true
        },500)
    }
    // 设置小圆点的current
    function setCircles(){
        // 遍历
        for(var i=0;i <=4;i++){
            if(i == idx % 5){
                circle_lis[i].className = 'current'
            }else{
                circle_lis[i].className = ''
            } 
        } 
    }
    // 事件委托 小圆点的监听
    circle_ol.onclick = function(e){ 
        if(e.target.tagName.toLowerCase() == 'li'){
            // 得到 li 身上的 data-n 属性 就是 n
            var n = e.target.getAttribute('data-n') 
             //  改变序号 
             idx = n 
             // 拉动
             carousel_list.style.transform = 'translateX(' + -16.66 * idx + '%)' 
            // 设置小圆点
            setCircles()
        }   
    }
    // 定时器 自动轮播
    var timer = setInterval(right_btn_handler, 2000);
    // 鼠标进入  自动暂停轮播
    banner.onmouseenter = function(){
        clearInterval(timer)
    }
    // 鼠标离开  自动暂停开始
    banner.onmouseleave = function(){
        clearInterval(timer)
        timer = setInterval(right_btn_handler, 2000);
    }
})()
    我是Eric,手机号是13522679763
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号