js简单轮播

开发工具与关键技术: Visual Studio Code

作者:欧阳

撰写时间:2022/3/17

一个简单的轮播,代码

 <style type="text/css">

        /*清除边距*/

        div,ul,li{

            margin: 0;

            padding: 0;

        }

        /*首先准备一个放图片的容器*/

        .container{

            width: 500px;

            height: 280px;

            position: relative;

            top: 100px;

            left: 30%;

            /*border: 1px solid #ccc;*/

        }

        /*图片样式*/

        .container img{

            position: absolute;        /*把所有图片放在同一个位置*/

            width: 100%;

            transition-duration: 0.5s;    /*设置过渡时间*/

            opacity: 0;                /*把所有图片变透明*/

        }

        /*图片显示开关*/

        .container img.on{

            opacity: 1;                /*用于显示图片*/

        }

        /*左右按钮 按钮用图片更好点,这里为了简便就用大于小于号*/

        .left, .right{

            position: absolute;

            top: 30%;

            width: 60px;

            height: 100px;

            line-height: 100px;

            background-color: #666;

            opacity: 0.5;

            text-align: center;

            font-size: 60px;

            color: #ccc;

            display: none;    /*先隐藏按钮*/

            cursor: pointer;    /*设置鼠标悬停时的样式*/

        }

        .left{

            left: 0;

        }

        .right{

            right: 0;

        }

        .container:hover .left, .container:hover .right{

            display: block;            /*鼠标悬停才容器范围内时显示按钮*/

        }

        .left:hover, .right:hover{

            color: #fff;

        }

        /*焦点*/

        .container ul{

            position: absolute;

            bottom: 0;

            max-width: 500px;

            padding: 5px 200px;

        }

        .container ul li{

            list-style: none;

            float: left;

            background-color: #ccc;

            width: 10px;

            height: 10px;

            border-radius: 50%;

            margin-left: 10px;

            cursor: pointer;

        }

        .container ul li.active{

            background-color: #282923;        /*焦点激活时的样式*/

        }

    </style>

</head>

<body>

    <div class="container">

        <!-- 先把第一张图片显示出来 -->

        <img class="on" src="../images/xxg.jpg" />

        <img src="../images/heif.jpg" />

        <img src="../images/luo.jpg" />

        <img src="../images/jur.png" />

        <!-- 左右切换 -->

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

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

        <!-- 焦点 -->

        <ul>

            <li class="active"></li>

            <li></li>

            <li></li>

            <li></li>

        </ul>

    </div>

<!-- js部分 -->

    <script type="text/javascript">

        //1、找到container下的所有img标签,li标签,左右按钮

        var aImgs = document.querySelectorAll('.container img');

        var aLis = document.querySelectorAll('.container li');

        var btnLeft = document.querySelector('.container .left');

        var btnRight = document.querySelector('.container .right');

        //点击事件

        //点击按钮图片切换

        var index = 0;        //当前图片下标

        var lastIndex = 0;

        btnRight.onclick = function(){

            //记录上一张图片的下标

            lastIndex = index;

            //清除上一张图片的样式

            aImgs[lastIndex].className = '';

            aLis[lastIndex].className = '';

            index++;

            index %= aImgs.length;    //实现周期性变化

            //设置当前图片的样式

            aImgs[index].className = 'on';

            aLis[index].className = 'active';

        }

        //左边按钮类似

        btnLeft.onclick = function(){

            //记录上一张图片的下标

            lastIndex = index;

            //清除上一张图片的样式

            aImgs[lastIndex].className = '';

            aLis[lastIndex].className = '';

            index--;

            if (index < 0) {

                index = aImgs.length - 1;

            }

            //设置当前图片的样式

            aImgs[index].className = 'on';

            aLis[index].className = 'active';

        }

    </script>

然后打开你的浏览器看看成功没

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值