轮播图

布局

利用jQuery实现小米轮播图效果。实现该效果由三部分组成:图片、切换上一张和下一张按钮以及图片下方小圆点。在实现过程中,添加了定时器,开始时,图片自动的从右到左切换,底下的小圆点也在相对于的切换,点击上一张或者下一张按钮的时候,图片和小圆点也在对于的切换。

布局与样式代码如下:
HTML

<body>
    <div id="banner">
        <div class="img_wrap">
            <ul>
                <li class="item" style="display: block;">
                    <img src="images/1.jpg"  width="1226" height="460" alt="">
                </li>
                <li class="item">
                    <img src="images/2.jpg" width="1226" height="460" alt="">
                </li>
                <li class="item">
                    <img src="images/3.jpg" width="1226" height="460" alt="">
                </li>
                <li class="item">
                    <img src="images/4.jpg" width="1226" height="460" alt="">
                </li>
                <li class="item">
                    <img src="images/5.jpg" width="1226" height="460" alt="">
                </li>
            </ul>
        </div>
        <div class="lr_tab">
            <div class="left btn"></div>
            <div class="right btn"></div>
        </div>
        <div class="small_btn">
            <ul>
                <li class="btn active"></li>
                <li class="btn"></li>
                <li class="btn"></li>
                <li class="btn"></li>
                <li class="btn"></li>
            </ul>
        </div>
    </div>
</body>

CSS

body{
    margin:0;
}
#banner{
    width:1226px;
    height:460px ;
    margin:100px auto;
    position:relative;
}
ul,li{
    list-style: none;
    margin:0;
    padding:0;
}
#banner .item{
    position:absolute;
    display: none;
    top:0;
    left: 0;
}

.lr_tab .btn{
    position:absolute;
    width:41px;
    height: 69px;
    top:200px;
    background:url("images/icon-slides.png");
}
/*上一张下一张按钮*/
 .lr_tab .left{
    left: 234px;
    background-position-x: -83px;
}
.lr_tab .right{
    right:0;
    background-position-x:-125px;
}
.lr_tab .left:hover{
    background-position-x: 0px;
}
.lr_tab .right:hover{
    background-position-x: -43px;
}
/*下面的五个小圆圈*/
.small_btn{
    width:110px;
    height: 30px;
    position:absolute;
    right:40px;
    bottom:10px;
}
.small_btn .btn{
    width:6px;
    height: 6px;
    background-color: #899898;
    border:2px solid #b0adb2;
    float: left;
    border-radius:50%;
    margin-left:10px;
}
.small_btn .btn:hover{                 //鼠标移动到小圆点上改变小圆点的背景色为白色
    background-color: #fff;
}
.small_btn .active{					//小圆点选中状态将背景色改为白色
    background-color: #fff;
}

注:一定要引入jQuery文件。

<script rel="script" src="js/jquery-3.4.1.js"></script>

效果如下

在这里插入图片描述

实现

入口函数

在jQuery语法中,代码要写在入口函数中,jQuery的入口函数有4种写法。推荐使用第三种,方便简洁。

入口函数写法如下:

 第一种写法
     $(document).ready(function () {
     alert("hello");
   });

 第二种写法
    jQuery(document).ready(function () {
      alert("hello");
  });

 第三种写法(推荐)
   (function () {
      alert("hello");
 });

 第四种写法
    jQuery(function () {
       alert("hello");
  });

小圆点切换实现

图片中小圆点与图片时一一对应的,当图片切换时,对应的小圆点也会对应切换。在布局的时候,让所有的图片定位重合在一起,并将图片隐藏,让第一张图片显示,并将下面的第一个小圆点添加了active类,改变默认的小圆点的背景色,当图片对应切换时,将active类添加给图片对应的小圆点。

// jQuery入口函数
$(document).ready(function () {
    //定义一个index变量来表示图片的位置
    var index=0;
    //定义一个变量,来获取图片的总数
    var num=$(".img_wrap .item").length;

    //单击小圆点实现圆点的切换,就是给点击的小圆点添加active类,把第一个
    //的active类去掉
    $(".small_btn .btn").click(function () {
        //获取当前元素的索引
        index=$(this).index();
        //给当前的小圆点添加active类,把其它的兄弟小圆点的active类删除
        $(this).addClass("active").siblings().removeClass("active");
        // 单击小圆点实现图片的切换,渐入渐出
        $(".item").eq(index).fadeIn().siblings().fadeOut();
    });

上一张按钮

为上一张按钮添加鼠标响应事件,直接找到要添加鼠标单击按钮即可,不需要提前定义,通过var一个变量来使用,快速高效。每次点击上一张按钮时,将该图片对应的索引减减,如果此时图片是第一张时,下一次点击显示为最后一张,并且每次点击都要改变小圆圈的状态。

 // 为两个按钮添加鼠标单击响应事件
    // "切换到上一张"按钮
    $(".lr_tab .left").click(function () {
        index--;
        if(index<0){
            // 如果图片到达第一张时,下一次点击从最后一张开始
            index=num-1;
        }
        // $(".item").eq(index).fadeIn().siblings().fadeOut();
        // 将索引为index的图片渐入,其他图片渐出
        $(".item").eq(index).fadeIn().siblings().fadeOut();
        $(".small_btn .btn").eq(index).addClass("active").siblings().removeClass("active");
    });

下一张按钮

与上一张按钮思路相同。

  // "切换到下一张"按钮
    $(".lr_tab .right").click(function () {
        index++;
        if(index>num-1){
            // 如果图片到达最后一张时,下一次单击从第一张开始
            index=0;
        }
        $(".item").eq(index).fadeIn().siblings().fadeOut();
        $(".small_btn .btn").eq(index).addClass("active").siblings().removeClass("active");
    });

创建定时器

创建一个定时器,实现图片的自动轮播,当鼠标放入图片中时,图片暂停自动轮播,即清除定时器即可。

  // 创建一个定时器,实现图片的自动轮播
    var timer=setInterval(function () {
        index++;
        if(index>num-1){
            // 如果图片到达最后一张时,下一次单击从第一张开始
            index=0;
        }
        $(".item").eq(index).fadeIn().siblings().fadeOut();
        $(".small_btn .btn").eq(index).addClass("active").siblings().removeClass("active");
    },2000);

    //设置鼠标放到图片上时暂停自动轮播
    $(".item").hover(function () {
        clearInterval(timer);
    },function () {
        timer=setInterval(function () {
            index++;
            if(index>num-1){
                // 如果图片到达最后一张时,下一次单击从第一张开始
                index=0;
            }
            $(".item").eq(index).fadeIn().siblings().fadeOut();
            $(".small_btn .btn").eq(index).addClass("active").siblings().removeClass("active");
        },2000);
    })

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值