ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jquery+css实现图片无缝滚动轮播

2019-12-31 20:04:35  阅读:217  来源: 互联网

标签:Jquery 轮播 img li num 0px banner css size


原文地址:http://www.cnblogs.com/shaojiang/p/5295826.html

最终实现界面如下:

页面加载时,自动轮播,轮播鼠标悬停在整个banner容器的时候,两边会显示向左,向右按钮,鼠标悬停在中下方索引圆圈的上面,自动跳转到相应的图片。

 

banner容器里面包含了图片列表img,索引圆圈 num,还有按钮两个btn

复制代码 复制代码
 <div class="banner">
            <ul class="img">
                <li><img src="image/1.jpg" alt=""/></li>
                <li><img src="image/2.jpg" alt="" /></li>
                <li><img src="image/3.jpg" alt="" /></li>
                <li><img src="image/4.jpg" alt="" /></li>
            </ul>
            <ul class="num">
                
            </ul>
            <div class="btn btn_l">&lt;</div>
            <div class="btn btn_r">&gt;</div>
  </div>
复制代码 复制代码

 

以下是CSS样式表,直接拷贝,可看到效果,只是没有使用JS实现轮播事件而已,

 

复制代码 复制代码
 <style type="text/css">
            *{ padding:0px; margin:0px;list-style:none;}
            .banner { width:500px; height:300px; margin:100px auto; border:1px solid #808080; position:relative; overflow:hidden;}
            .banner .img{width:5000px; position:absolute; left:0px;top:0px;}
            .banner .img img{width:500px; height:300px;}
            .banner .img li{float:left;}
            .banner .num { position:absolute; width:100%; bottom:10px; left:0px; text-align:center; font-size:0px;}
            .banner .num li { width:10px; height:10px; background-color:#888; border-radius:50%;display:inline-block; margin:0px 3px; cursor:pointer;}
            .banner .num li.on {background-color: #ff6a00;}
            .banner .btn {width: 30px;height: 50px;background-color: #808080;opacity: 0.5; filter:alpha(opacity:0.5); position:absolute;top:50%; margin-top:-25px;
                    cursor:pointer;
                    text-align:center;
                    line-height:50px;
                    font-size:40px;
                    color:#fff;
                    font-family:"宋体";
                    display:none;
                }
                .banner .btn_l { left:0px;}
                .banner .btn_r { right:0px;}
                .banner:hover .btn { display:block;}
            </style>
复制代码 复制代码

 

以下是JS各个事件的调用,使用前别忘记引用jquery文件,我这里引用的是  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

 

复制代码 复制代码
 <script type="text/javascript">

            $(document).ready(function () {

                var i = 0;

                var clone = $(".banner .img li").first().clone();//克隆第一张图片
                $(".banner .img").append(clone);//复制到列表最后
                var size = $(".banner .img li").size();
               

                for (var j = 0; j < size-1; j++) {
                    $(".banner .num").append("<li></li>");
                }

                $(".banner .num li").first().addClass("on");

                /*自动轮播*/

                var t = setInterval(function () { i++; move();},2000);

                /*鼠标悬停事件*/

                $(".banner").hover(function () {
                    clearInterval(t);//鼠标悬停时清除定时器
                }, function () {
                    t = setInterval(function () { i++; move(); }, 2000); //鼠标移出时清除定时器
                });




                /*鼠标滑入原点事件*/

                $(".banner .num li").hover(function () {

                    var index = $(this).index();//获取当前索引值
                    i = index;
                    $(".banner .img").stop().animate({ left: -index * 500 }, 500);
                    $(this).addClass("on").siblings().removeClass("on");
                });



                /*向左按钮*/
                $(".banner .btn_l").click(function () {
                    i++;
                    move();
                })

                
                /*向右按钮*/
                $(".banner .btn_r").click(function () {
                    i--;
                    move();
                })

                /*移动事件*/
                function move() {
                    if (i == size) {
                        $(".banner .img").css({ left: 0 });
                        i = 1;
                    }
                    if (i == -1) {
                        $(".banner .img").css({ left: -(size - 1) * 500 });
                        i = size - 2;
                    }
                    $(".banner .img").stop().animate({ left: -i * 500 }, 500);

                    if (i == size - 1) {
                        $(".banner .num li").eq(0).addClass("on").siblings().removeClass("on");
                    } else {
                        $(".banner .num li").eq(i).addClass("on").siblings().removeClass("on");
                    }
                }
            });


        </script>
复制代码 复制代码

 拷贝起来很方便即用。

标签:Jquery,轮播,img,li,num,0px,banner,css,size
来源: https://www.cnblogs.com/jianxian/p/12127144.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有