JS实现简单轮播图

本文详细介绍了如何使用HTML和CSS创建一个基本的轮播图,包括图片切换、导航点切换及相应的颜色变化。通过点击左右箭头和小圆点,可以实现图片的无缝切换。此外,提供了JavaScript代码实现轮播图的动态交互功能,如点击按钮和小圆点时更改显示的图片。这个轮播图设计简洁,易于理解,适合初学者学习。
摘要由CSDN通过智能技术生成

以下为HTML页面布局和css样式,完成如图效果,显示一张照片,其余隐藏。
在这里插入图片描述

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .crousel{
            width: 1700px;
            height: 560px;
            overflow: hidden;
            margin: auto;
            position: relative;
        }
        //设置起始位置为0
        .imgCon{
            width: 8500px;
            height: 560px;
            position: absolute;
            left: 0;
            transition: all 0.5s;
            font-size: 0;
        }
        .imgCon>img{
            width: 1700px;
            height: 560px;
        }
        .leftBn,.rightBn{
            position: absolute;
            top:250px ;
        }
        .leftBn{
            left: 50px;
        }
        .rightBn{
            right: 50px;
        }
        ul{
            list-style: none;
            position: absolute;
            left: 710px;bottom: 50px;
        }
        li{
            width: 40px;
            height: 40px;
            border: 2px solid red;
            border-radius: 50%;
            float: left;
            margin-left: 20px;
        }
        li:nth-child(1){
            margin-left: 0;
        }
    </style>
<div class="crousel">
        <div class="imgCon">
            <img src="./img/a.jpeg" >
            <img src="./img/b.jpeg" >
            <img src="./img/c.jpeg" >
            <img src="./img/d.jpeg" >
            <img src="./img/e.jpeg" >
        </div>
        <img src="./img/left.png" class="leftBn">
        <img src="./img/right.png" class="rightBn">
        <ul class="list">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>

需求:

1、点击左右方向图标切换图片
2、点击图片中的小圆点切换图片
3、切换对应的图片改变小圆点颜色

点击切换图片实际上就是点击按钮时让装图片的盒子滚动也就是imgCon,点击右方向图标时,向左边滚动,把下一张图片显示出来,点击左方向图标,向右边滚动,显示前一张照片。
以下为JS代码

<script>

        
        var imgCon,leftBn,rightBn,list,prevDot;
        //设置一个变量pos初始为0,相当于就是初始为第一张图片,通过改变pos的值来切换图片,为1时就切换到第二张,以此类催
        var pos=0;

        init();
        function init(){
            //获取到装图片的盒子和左右按钮
            imgCon=document.querySelector(".imgCon");
            leftBn=document.querySelector(".leftBn");
            rightBn=document.querySelector(".rightBn");
            //获取所有的li并转换为数组,5个li对应5张图片
            list=Array.from(document.querySelectorAll("li"));
            //添加点击函数
            leftBn.onclick=clickHandler;
            rightBn.onclick=clickHandler;
            // 给每个li添加点击函数
            list.forEach(function(item){
                item.onclick=DotclickHandler;
            })
            changeDot();
        }

        function clickHandler(){
            //this为点击的目标,当点击左边按钮时
            if(this===leftBn){
                //pos递减,当减到0时,也就是初始图片时,设置pos=4,直接切换至最后一张
                pos--;
                if(pos<0) pos=4;
            }else{
                //点击右边按钮时,pos++,当大于4时,设置为0,切换至第一张图片
                pos++;
                if(pos>4) pos=0;
            }
            //设置imgCon样式 1700px就是一张图片的位置,pos为几,就显示第几章
            imgCon.style.left=pos*-1700+"px";
            changeDot();
        }

        function DotclickHandler(){
            //在list数组中查找点击的元素,返回元素的下标,list里面5个li,下标0-4,查到到的下标赋值给pos
            pos=list.indexOf(this);
            //改变imgCon样式  切换图片
            imgCon.style.left=pos*-1700+"px";
            changeDot();
        }

        function changeDot(){
            //如果上一个圆点变量存在时,将其设置为透明
            if(prevDot) prevDot.style.backgroundColor="rgba(255,0,0,0)";
            //将点击的小圆点设置为红色
            prevDot=list[pos];
            prevDot.style.backgroundColor="rgba(255,0,0)"
        }

    </script>

这样就完成了一个简单的轮播图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值