自学了一些jQuery,虽然还是菜鸡,但是想留点小痕迹~

(1)    功能:

jQuery实现轮播功能,当点击“>””<”或下面的“蓝色圆点”时可以自动查看图片,此时自动播放功能暂停,待不点击时可以恢复自动播放功能。

jQuery实现轮播功能,及其在其基础上实现类似放大镜自动轮播功能

   代码展示:

1.   引入<scriptsrc="http://www.imooc.com/data/jquery-1.8.2.min.js"></script>

2.   Css部分:

  <style>

    *{

        margin: 0;

        padding: 0;

    }

    #box{

        width: 700px;

        height: 400px;

        border: 1px solid#102327;

        position: relative;

        margin:0 auto;

        margin-top: 100px;

        overflow: hidden;

    }

    .ul_list{

        width:3500px;

        height: 400px;

        position: absolute;

    }

    .li_list{

        width: 700px;

        height: 400px;

        list-style: none;

        float: left;

    }

    .li_list img{

        width: 100%;

        height: 100%;

    }

    .odiv_nav{

        position: absolute;

        bottom: 20px;

        left: 50%;

        margin-left: -100px;

    }

    .span_list{

        width: 20px;

        height: 20px;

        border: 3px solidwhite;

        border-radius:50%;/*圆形*/

        float: left;

        margin-left: 20px;

        cursor: pointer;/*可有可无*/

    }

    .left_click{

        position: absolute;

        width: 80px;

        height: 400px;

        font-size:4em;

        color: blue;

        text-align: center;

        line-height: 400px;

        cursor: pointer;

        z-10000;

    }

    .right_click{

        position: absolute;

        right: 0px;

        width: 80px;

        height: 400px;

        font-size:4em;

        color: blue;

        text-align: center;

        line-height: 400px;

        cursor: pointer;

        z-10000;

    }

 

</style>

3.   body部分:

<body>

<div id="box">

    <ulclass="ul_list">

        <liclass="li_list"><img src="1.jpg"alt=""/></li>

        <liclass="li_list"><img src=" 2.jpg"alt=""/></li>

        <liclass="li_list"><img src="3.jpg"alt=""/></li>

        <liclass="li_list"><img src="4.jpg"alt=""/></li>

        <liclass="li_list"><img src="5.jpg"alt=""/></li>

    </ul>

    <divclass="odiv_nav">

        <spanclass="span_list"></span>

        <spanclass="span_list"></span>

        <spanclass="span_list"></span>

        <spanclass="span_list"></span>

    </div>

     

    <divclass="left_click"><</div>

    <divclass="right_click">></div>

</div>

4.   最重要的部分,具体实现细节:

<script>

    $(function(){

        var num=0;

        var timer=null;

        go();

       $("#box").mouseenter(function(){//实现当鼠标移动到box上时,不执行自动轮播功能

           clearInterval(timer);//移动进去时清除定时器

       }).mouseleave(function(){

            go();//移出后执行go函数

        });

       $(".span_list").eq(0).css("backgroundColor","blue");

        //页面加载后默认是第一张图,则让第一个导航圆点变为“选中色”。

        function go(){

         timer=setInterval(function(){//设置定时器

                num++;//用一个全局变量来控制图的运动次数

               if(num>4){//如果移动到了最后一张图,则num赋值1,调整ul边距(相当于初始化)

                    num=1;

                   $(".ul_list").css("margin-left","0px");

                }

                if(num==4){//由于圆点只有四个,而图片有五张,当移动到第五张图片时,给第一个圆点“选中色”。

                   $(".span_list").css("backgroundColor","transparent");//transparent为透明色

                   $(".span_list").eq(0).css("backgroundColor","blue");

                }

                else{//图片运动一次,导航圆点也动态的变换,这里先让所有圆点变为“不选中色”,再让当前圆点变为“选中色”。

                   $(".span_list").css("backgroundColor","transparent");

                   $(".span_list").eq(num).css("backgroundColor","blue");

                }

               $(".ul_list").animate({"marginLeft":-700*num+"px"},580);//使用animate实行运动功能,这个580可有可无

            },2000); //2秒轮动一下

        }

 

       $(".span_list").each(function (index) {//遍历每一个圆点添加点击事件,点击当前圆点则让num值赋为当前圆点的索引

           $(this).click(function () {

                num=index;

               $(".span_list").css("backgroundColor","transparent");

               $(".span_list").eq(num).css("backgroundColor","white");

               $(".ul_list").stop().animate({"marginLeft":-700*num+"px"},580);//580代表速度,点击圆点后,结束自动播放

            })

        });

 

        $(".right_click").click(function(){

        //右按钮点击事件,每点击一次num++,这里有很多的判断,是用来消除一些BUG的。

           if(num<=4){num++;}

            if(num>4){

                num=1;

               $(".ul_list").css("margin-left","0px");

            }

            if(num==4){

               $(".span_list").css("backgroundColor","transparent");

               $(".span_list").eq(0).css("backgroundColor","blue");

            }

            else{

               $(".span_list").css("backgroundColor","transparent");

                $(".span_list").eq(num).css("backgroundColor","blue");

            }

           $(".ul_list").stop().animate({"marginLeft":-700*num+"px"},580);//580代表速度,点击"><"后,结束自动播放

 

        });

 

       $(".left_click").click(function(){//左按钮点击事件

           if(num>=0){num--;}

            if(num<0){

                num=3;

               $(".ul_list").css("margin-left","-2800px")

               $(".span_list").css("backgroundColor","transparent");

               $(".span_list").eq(3).css("backgroundColor","blue");

            }

            else{

               $(".span_list").css("backgroundColor","transparent");

               $(".span_list").eq(num).css("backgroundColor","blue");

            }

           $(".ul_list").stop().animate({"marginLeft":-700*num+"px"},580);

 

        });

 

    });

</script>

2)在原来基础上实现,轮转到该位置时,上面显示该放大图片,这时又该怎么做???

jQuery实现轮播功能,及其在其基础上实现类似放大镜自动轮播功能

具体操作:

1).把所有    $(".span_list").eq(0).css("backgroundColor","blue");把所有    $(".span_list").eq(num).css("backgroundColor","blue");改为

$(".span_list").eq(0).css("border-color","red");$(".span_list").eq(nuj).css("border-color","red");

2).把左右的 $(".span_list").css("backgroundColor","transparent");改为

$(".span_list").css("border-color","white");

3).css中.span_list去掉border-radius:50%;

4)已成功实现^-^!!!

感想:发现jQuery的一些功能还是很酷炫的,而且代码简洁,特别是一些插件功能!!!

相关文章: