用户登录
用户注册

分享至

使用jquery实现轮播图效果

  • 作者: 你猜___
  • 来源: 51数据库
  • 2021-09-04

今天给大家分享的是利用jquery实现轮播图的效果,废话不多说咯,直接上代码,当然每行代码会有注释了,这样也便于理解哦~

html样式
css样式
js样式

第一步:先引进jquery文件

<script src="./jquery.js"></script>

第二步:html样式

<div id="banner">
        <!-- 图片 -->
        <ul id="banner_img">
            <li>
                <img src="./img/1.jpg" alt="">
            </li>
            <li>
                <img src="./img/2.jpg" alt="">
            </li>
            <li>
                <img src="./img/3.jpg" alt="">
            </li>
            <li>
                <img src="./img/4.jpg" alt="">
            </li>
        </ul>
        <!-- 圆点 -->
        <ul id="banner_yuandian">
            <li class="active">1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <!-- < >箭头指向 -->
        <button id="banner_back"><</button>
        <button id="banner_next">></button>
    </div>

回到顶部

第三步:css样式
<style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        #banner{
            position: relative;
        }
        /*图片样式 */
        #banner #banner_img{
            width: 300px;
            height: 300px;
            border: 2px red solid;
        }
        #banner #banner_img img{
            width: 300px;
            height: 300px;
        }
        #banner #banner_img>li{
            display: none;
        }
        #banner #banner_img :first-child{
            display:block;
        }
        /* 圆点样式 */
        #banner_yuandian{
            position: absolute;
            bottom: 10px;
            display: flex;
            margin-left: 35px;

        }
        #banner_yuandian li{
            margin-left: 30px;
            width: 20px;
            height: 20px;
            border: 1px red solid;
            border-radius: 50%;
            text-align: center;
        }
        #banner_yuandian li:hover{
            background: orange;
        }
        #banner_yuandian .active{
            background: orange;
        }
        /* 箭头样式 */
        #banner_back{
            width: 30px;
            height: 30px;
            position: absolute;
            margin-top: -150px;
        }
        #banner_next{
            width: 30px;
            height: 30px;
            position: absolute;
            margin-top: -150px;
            margin-left: 273px;
        }
    </style>

回到顶部

第四步:js样式
<script>
        
        //设置图片,圆点,箭头共同的下标 从0开始
        var index=0;

        //封装轮播的函数 第一步
        function show(){
            //下标每次+1增加
            index+=1;
            //如果下标大于等于图片的长度数,返回第一张图,即是下标index=0就行
            if(index>=$("#banner_img>li").length){
                index=0;
            }

            //让li的每张图片点击时显示自己,其他兄弟隐藏
            $("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
            //圆点的下标也需要封装一下样式
            $("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
       
        }

        //利用计时器达到轮播效果  第二步
        var x=setInterval(show,2000);

        //鼠标移动到图片上时清除计时器,移出之后重新加入计时器
        $("#banner_img>li").hover(
            function(){
                clearInterval(x);
            },
            function(){
                x=setInterval(show,2000);
            }
        )


        //圆点设置,点击圆点,切换相应图片 第三步
        $("#banner_yuandian>li").on("click",function(){
            //点击圆点时的下标取共同下标
            var index=$(this).index();//出错的地方index()语法

            //点击下标时展现对应的图片,其他兄弟图隐藏
            $("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
            //点击圆点,添加样式,其他删除
            $("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");
       
        })

        //鼠标滑动上去滑动出来要清除计时器和再次设置计时器   第四步
        $("#banner_yuandian>li").hover(
            function(){
                clearInterval(x);
            },
            function(){
                x=setInterval(show,2000);
            }
        )
            

        //箭头设置  第五步
       
        $("#banner_back").on("click",function(){
           //点击一次减去1
            index--;
            //当下标小于0时,就返回第一张图
            if(index<0){
                index=0;
            }

            
            //点击下标时展现对应的图片,其他兄弟图隐藏 
            $("#banner_img>li").eq(index).show(1000).siblings().hide(1000);
            //点击圆点,添加样式,其他删除
            $("#banner_yuandian>li").eq(index).addClass("active").siblings().removeClass("active");

        })
        //下一张 可以直接调用
        $("#banner_next").on("click",function(){
            show();
        })

        //点击button按钮再次清除计时器和添加计时器
        $("button").hover(
            function(){
                clearInterval(x);
            },
            function(){
                x=setInterval(show,2000);
            }
        )

回到顶部

软件
前端设计
程序设计
Java相关