用jQuery做出简易轮播图(代码详细注释)

js渣渣也能简单做出

在理想情况下用 吧外层div的class名起为banner   ul li的布局

下面是css代码放图片的li记得浮动;

.banner {
  width: 15rem;
  height: 5.22rem;
  position: relative;
  overflow: hidden;
}
.banner ul {
  width: 60rem;
  height: 5.22rem;
  position: absolute;
}
.banner ul li {
  float: left;
  width: 15rem;
  height: 5.22rem;
}
.banner img {
  width: 15rem;
  height: 5.22rem;
}

这里是HTML代码 img标签里直接放自己想轮播的图片

a标签是轮播图左右按钮这里引用的是阿里icon font图标库的图标

 <div class="banner">
        <ul>

            <li><img src="./img/01.webp"></li>
            <li><img src="./img/02.webp"></li>
            <li><img src="./img/03.webp"></li>
            <li><img src="./img/04.webp"></li>
            <li><img src="./img/05.webp"></li>
        </ul>
        <div class="num">
            <span class="on"></span>
            <span></span>
            <span></span>
            <span></span>
            <span></span>
        </div>
        <a href="javascript:" class="prev"><i class="iconfont icon-lunbozuofangun"></i></a>
        <a href="javascript:" class="next"><i class="iconfont icon-lunboyoufangun"></i></a>
    </div>

最重要的来了jQuery代码

   $(function () {
            var timer = null;
            //创建一个变量获取li宽度 
            var liw = $('.banner ul li:first').innerWidth();
            // 定时器名字叫time
            timer = setInterval(function () {
                play()
            }, 2000)

            //这里是吧轮播效果封装为了一个函数叫paly 方便后面调用
            function play() {
                    //每2000毫秒把外层div的视口往左拉当前li的宽度
                $('.banner ul').animate({ left: -liw }, function () {
                       // 把最后一张图片追加到前面 无缝轮播
                    $(this).css("left", 0).find("li:first").appendTo(this);
                })
            }

            //当鼠标划过清除定时器  暂停  这里用到的是jq里的hover事件
            $(".banner").hover(function () {
                clearInterval(timer);
                //移出继续
            }, function () {
                timer = setInterval(function () {
                   play()
                }, 2000)
            })
            //点击右箭头事件 这里的.next就是前面的字体图标
               //点击时候调用play()函数
            $('.next').click(function(){
                play()
            })
           //点击左箭头事件 这里的.prev就是前面的字体图标
            $('.prev').click(function(){
                $('.banner ul').css('left', -liw ).find("li:last").prependTo('.banner ul')
                $('.banner ul').animate({ left:0});
                
              
            })
        }) 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>