用JavaScript实现轮播图效果

 更新时间:2021年08月24日 10:37:20   作者:52Sky  
这篇文章为大家详细主要介绍了用JavaScript实现轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了JavaScript实现轮播图效果的具体代码,供大家参考,具体内容如下

实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            list-style: none;
        }
        #box {
            margin: 30px auto;
            width: 590px;
            height: 340px;
            position: relative;
        }
 
        #banner-list > li {
            position: absolute;
            left: 0;
            right: 0;
            opacity: 0;
            /*过渡动画*/
            transition: opacity 2s ease;
        }
 
        #left, #right {
            width: 30px;
            height: 60px;
            text-align: center;
            line-height: 60px;
            font-size: 24px;
            color: rgba(255,255,255,0.7);
            background-color: rgba(0,0,0,0.3);
            position: absolute;
            top: 50%;
            margin-top: -30px;
            z-index: 3;
        }
 
        #right {
            right: 0;
        }
 
        #tag-list {
            width: 130px;
            position: absolute;
            left: 50%;
            bottom: 8px;
            margin-left: -55px;
        }
 
        #tag-list > li {
            float: left;
            width: 18px;
            height: 18px;
            margin: 4px;
            text-align: center;
            line-height: 18px;
            font-size: 13px;
            background-color: white;
            border-radius: 9px;
            /*过渡动画*/
            transition: background-color 1s ease;
        }
    </style>
    <script>
        window.onload = function (){
            //获取tag_list和圆圈list
            var tag_list = document.getElementById("tag-list");
            var list = tag_list.children;
 
            //1.获取 ul(banner_list) 和 所有的li
            let banner_list = document.getElementById("banner-list");
            let bannerLi = banner_list.children;
 
            //2.默认显示第一张banner
            bannerLi[0].className = "current-banner"
            bannerLi[0].style.opacity = 1
            list[0].style.backgroundColor = "red"
 
            //3.索引从0开始,默认显示第一张。
            //count表示当前显示页面的索引
            let count = 0;
 
            //4.点击>向右切换
            var right = document.getElementById("right");
            right.onclick = function (){
                //4.1先将当前页面隐藏
                bannerLi[count].className = ""
                bannerLi[count].style.opacity = 0
                list[count].style.backgroundColor = "white"
 
                //4.2.页码加1,当到第6张(index=5),切换到第一张(index=0)
                if (++count == 5){
                    count = 0
                }
 
                //4.3 设置当前页码为显示
                bannerLi[count].className = "current-banner"
                bannerLi[count].style.opacity = 1
                list[count].style.backgroundColor = "red"
            }
 
            //和right差不多,修改下条件
            var left = document.getElementById("left");
            left.onclick = function (){
                //4.1先将当前页面隐藏
                bannerLi[count].className = ""
                bannerLi[count].style.opacity = 0
                list[count].style.backgroundColor = "white"
 
                //4.2.页码减1,当到第0张(index=-1),切换到第5张(index=4)
                if (--count == -1){
                    count = 4
                }
 
                //4.3 设置当前页码为显示
                bannerLi[count].className = "current-banner"
                bannerLi[count].style.opacity = 1
                list[count].style.backgroundColor = "red"
            }
 
            //给所有圆圈绑定鼠标事件
            for (let i = 0; i < list.length; i++) {
                list[i].onmouseenter= function (){
                    //设置圆圈样式
                    list[count].style.backgroundColor = "white"
                    list[i].style.backgroundColor = "red"
                    //设置banner图样式
                    bannerLi[count].className = ""
                    bannerLi[count].style.opacity = 0
                    bannerLi[i].className = "current-banner"
                    bannerLi[i].style.opacity = 1
                    //将count置为i
                    count = i
                }
            }
        }
    </script>
</head>
<body>
    <div id="box">
        <ul id="banner-list">
            <li class="current-banner"><img src="banner-img/11.jpg" alt=""></li>
            <li><img src="banner-img/22.jpg" alt=""></li>
            <li><img src="banner-img/33.jpg" alt=""></li>
            <li><img src="banner-img/44.jpg" alt=""></li>
            <li><img src="banner-img/55.jpg" alt=""></li>
        </ul>
        <span id="left">&lt;</span>
        <span id="right">&gt;</span>
        <div>
            <ul id="tag-list">
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ul>
        </div>
    </div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Javascript验证上传图片大小[前台处理]

    Javascript验证上传图片大小[前台处理]

    在做上传图片的时候,如果不限制上传图片大小,后果非常的严重。解决这个问题有两种方式:后台处理、前台处理
    2014-07-07
  • Uncaught SyntaxError:Unexpected token '<' (at xxx.js)解决分析

    Uncaught SyntaxError:Unexpected token '<' (

    这篇文章主要为大家介绍了JS判断趋近于直线的多边形(退化多边形)实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • javascript解析ajax返回的xml和json格式数据实例详解

    javascript解析ajax返回的xml和json格式数据实例详解

    这篇文章主要介绍了javascript解析ajax返回的xml和json格式数据,结合实例形式详细分析了JS ajax调用及返回值中xml与json格式数据的处理技巧,需要的朋友可以参考下
    2017-01-01
  • 微信小程序地理定位功能实现

    微信小程序地理定位功能实现

    小程序地理定位是指通过小程序开发平台提供的 API,来获取用户的地理位置信息,用户在使用小程序时,可以授权小程序获取自己的地理位置信息,下面通过本文给大家分享微信小程序地理定位功能实现,感兴趣的朋友一起看看吧
    2024-05-05
  • 浅析JavaScript原型继承的陷阱

    浅析JavaScript原型继承的陷阱

    JavaScript和其它面向对象语言一样,对象类型采用引用方式。持有对象的变量只是一个地址,而基本类型数据是值。当原型上存储对象时,就可能有一些陷阱
    2013-12-12
  • Javascript promise异步编程浅析

    Javascript promise异步编程浅析

    这篇文章主要介绍了Javascript promise异步编程,Promise 是异步编程的一种解决方案,可以替代传统的解决方案–回调函数和事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-04-04
  • javascript中字体浮动效果的简单实例演示

    javascript中字体浮动效果的简单实例演示

    这篇文章主要介绍了javascript中字体浮动效果的简单实例演示,在一些网站上经常遇到当鼠标移导航栏的时候,能够使其弹出下拉选项,现在就演示一下这种功能,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 200行代码实现blockchain 区块链实例详解

    200行代码实现blockchain 区块链实例详解

    这篇文章主要介绍了200行代码实现blockchain 区块链的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-03-03
  • showModalDialog 和 showModelessDialog

    showModalDialog 和 showModelessDialog

    showModalDialog 和 showModelessDialog...
    2007-01-01
  • js select option对象小结

    js select option对象小结

    本篇文章主要是对js中的select option对象进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12

最新评论