美文网首页让前端飞Web前端之路程序员
仿造天猫、京东、凡客等,轮播图的开发(jQuery)

仿造天猫、京东、凡客等,轮播图的开发(jQuery)

作者: 被时光移动的城 | 来源:发表于2017-05-22 14:23 被阅读232次

    轮播图思路:
    1、轮播图布局
    2、定时器实现轮播效果
    3、指示器的鼠标移入(mouseenter)、移出(mouseleave)事件

    轮播图中的问题及解决办法:
    1、轮播图中指示器小圆点的实现。
    --> css3 border-radius属性
    2、当鼠标停在指示器上,获取当前序号 。
    --> index()
    3、鼠标在指示器上快速滑动,轮播出现白屏现象。
    --> 鼠标移入指示器停止Interval定时器,开启一个setTimeout定时器,如鼠标在指示器停留时间超过200ms,则图片指示器进行切换(同时关闭切换时的淡入淡出动画,防止堆积),否则鼠标移出指示器时关闭这个TImeout的定时器,然后开启Interval定时器。

    运行效果图:

    轮播图.gif

    代码(本文使用的jQuery版本是1.11.3,在低版本IE及W3C浏览器中效果相同):

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <style type="text/css">
            *{
                margin: 0px;
                padding: 0px;
            }
            #lb{
                width: 1200px;
                height: 535px;
                margin: 50px auto;
                border: 2px black solid;
                position: relative;
                overflow: hidden;
            }
            #lb img{
                display: 'none';
            }
            #lb ul{
                position: absolute;
                right: 46%;
                top: 500px;
            }
            *#lb ul li{
                display: block;
                background: #DDDDDD;
                float: left;
                width: 12px;
                height: 12px;
                margin-left: 8px;
                list-style:none;
                border-radius: 50%;
            }
        </style>
        <script type="text/javascript" src="jquery.min.js"> </script>
        <script type="text/javascript">
            $(function(){
                var i=0;
                // 轮播定时器
                var inTimer = setInterval(inRun,2000);
                var outTimer;
                //图片及小圆点切换的方法
                function inRun(){
                    i++;
                    i = (i==7)?0:i;
                    //图片切换
                    $("#lb img").eq(i).fadeIn(500).siblings('img').fadeOut(500);
                    //小圆点切换
                    $("#lb ul li").eq(i).css({'background':'#A10000'}).siblings('li').css({'background':'#DDDDDD'});
                }
                //鼠标移入小圆点
                $("#lb ul li").mouseenter(function(){
                    //获取对象
                    var liThis = $(this);
                    //清除轮播动画
                    clearInterval(inTimer);
                    //开启定时器,防止快速选择小圆点
                    outTimer = setTimeout(function(){
                    i = liThis.index();
                    //通过小圆点切换,停止关闭淡入淡出动画
                    $("#lb img").eq(i).stop().fadeIn(500).siblings('img').stop().fadeOut(500);
                    //小圆点切换
                    $("#lb ul li").eq(i).css({'background':'#A10000'}).siblings('li').css({'background':'#DDDDDD'});
                    },200);
                });
                
    //          鼠标移出小圆点事件
                $("#lb ul li").mouseleave(function(){
                    //清除掉防止图片快速切换
                    clearTimeout(outTimer);
                    //鼠标移出小圆点时开启图片轮播定时器
                    inTimer = setInterval(inRun,2000);
                });
            })
        </script>   
    
        <body>
            <div id="lb">
                ![](fkimgs/img1.jpg)
                ![](fkimgs/img2.jpg)
                ![](fkimgs/img3.jpg)
                ![](fkimgs/img4.jpg)
                ![](fkimgs/img5.jpg)
                ![](fkimgs/img6.jpg)
                ![](fkimgs/img7.jpg)
                <ul>
                    <li style="background: #A10000;"></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                </ul>
            </div>
        </body>
    </html>
    

    下载:https://github.com/wangwei66666/FKSlideShow
    如有问题欢迎交流。

    如转载请注明出处,谢谢!

    相关文章

      网友评论

        本文标题:仿造天猫、京东、凡客等,轮播图的开发(jQuery)

        本文链接:https://www.haomeiwen.com/subject/bxjbxxtx.html