zoukankan      html  css  js  c++  java
  • js实现轮播图

    功能:

    图片自动转换,左右箭头点击实现图片切换,小圆点也能实现图片切换

    HTML:
    <
    div class="contenter"> <ul> <li><img src="./img/1.jpeg" alt="" width="640" height="480"></li> <li><img src="./img/2.jpeg" alt="" width="640" height="480"></li> <li><img src="./img/3.jpeg" alt="" width="640" height="480"></li> <li><img src="./img/4.jpeg" alt="" width="640" height="480"></li> <li><img src="./img/5.jpeg" alt="" width="640" height="480"></li> </ul> <a href="javascript:;" class="arrow pre">&lt;</a> <a href="javascript:;" class="arrow next">&gt;</a> <ol> <li class="active"></li> <li></li> <li></li> <li></li> <li></li> </ol> </div>
    CSS:
        
    <style>
            * {
                margin: 0;
                padding: 0;
                list-style: none;
            }
    
            .contenter {
                width: 640px;
                height: 480px;
                margin: 0 auto;
                position: relative;
                top: 50px;
                box-shadow: 0 0 4px 4px #ccc;
                overflow: hidden;
            }
    
            .contenter ul {
                width: 3200px;
                height: 480px;
                position: absolute;
                left: 0;
                top: 0;
                transition: 0.7s;
            }
    
            .contenter ul li {
                float: left;
            }
    
            .contenter .arrow {
                width: 40px;
                height: 40px;
                border-radius: 9px;
                position: absolute;
                top: 200px;
                background-color: rgba(255, 255, 255, 0.4);
                font-size: 18px;
                color: white;
                text-align: center;
                text-decoration: none;
                line-height: 40px;
                transition: 0.3s;
            }
    
            .pre {
                left: 10px;
            }
    
            .next {
                right: 10px;
            }
    
            .contenter .arrow:hover {
                background-color: rgba(204, 204, 204, 0.801);
            }
    
            .contenter ol {
                width: 150px;
                position: absolute;
                bottom: 10px;
                left: 270px;
            }
    
            .contenter ol li {
                width: 10px;
                height: 10px;
                border-radius: 50%;
                margin: 0 5px;
                background-color: rgba(255, 255, 255, 0.4);
                float: left;
                position: relative;
                top: 4px;
                cursor: pointer;
            }
    
            .contenter ol li.active {
                width: 20px;
                height: 20px;
                background-color: rgba(204, 204, 204, 0.801);
                top: 0;
            }
        </style>
    JS:
    <script>
            let contenter = document.getElementsByClassName("contenter")[0];
            let ul = document.getElementsByTagName("ul")[0];
            let dots = document.getElementsByTagName("ol")[0].getElementsByTagName("li");
            let pre = document.getElementsByClassName("pre")[0];
            let next = document.getElementsByClassName("next")[0];
    
            let n = 0, stop;
    
            let animate = function () {
                n++;
                if (n == dots.length) {
                    n = 0;
                    ul.style.left = -640 * n + "px";
                }
                for (let i = 0; i < dots.length; i++) {
                    dots[i].className = "";
                }
                dots[n].className = "active";
                ul.style.left = -640 * n + "px";
            }
    
            stop = setInterval(animate, 1500);
    
            contenter.onmouseenter = function () {
                clearInterval(stop);
            }
            contenter.onmouseleave = function () {
                stop = setInterval(animate, 1500);
            }
    
            for (let i = 0; i < dots.length; i++) {
                dots[i].index = i;
                dots[i].onclick = function () {
                    n = this.index;
                    for (let j = 0; j < dots.length; j++) {
                        dots[j].className = "";
                    }
                    this.className = "active";
                    ul.style.left = -640 * n + "px";
                }
            }
    
            pre.onclick = function(){
                n--;
                if(n==-1){
                    n=4;
                }
                for(let i=0;i<dots.length;i++){
                    dots[i].className = "";
                }
                dots[n].className = "active";
                ul.style.left = -640*n+"px";
            }
            next.onclick = function(){
                n++;
                if(n==dots.length){
                    n=0;
                }
                for(let i=0;i<dots.length;i++){
                    dots[i].className = "";
                }
                dots[n].className = "active";
                ul.style.left = -640*n+"px";
            }
        </script>

    图片效果:

  • 相关阅读:
    Git SVN 版本控制 简介 总结 MD
    shape selector 背景 圆形 矩形 圆环 [MD]
    eclipse library jar包 使用总结 MD
    Visitor 访问者模式 [MD]
    BlazeMeter+Jmeter 搭建接口测试框架
    nGrinder 简易使用教程
    65个面试常见问题技巧回答(绝对实用)
    [面试技巧]16个经典面试问题回答思路
    质量模型测试电梯
    linux apache服务器优化建议整理(很实用)
  • 原文地址:https://www.cnblogs.com/CccK-html/p/11432661.html
Copyright © 2011-2022 走看看