jq轮播特效

 

效果图

----------------------------htmi-----------------------------

<div id="wrapper"><!-- 最外层部分 -->
            <div id="banner"><!-- 轮播部分 -->
                <ul class="imgList"><!-- 图片部分 -->
                <li><a href="#">puss in boots1</a></li>
                <li><a href="#">puss in boots2</a></li>
                <li><a href="#">puss in boots3</a></li>
                <li><a href="#">puss in boots4</a></li>
                <li><a href="#">puss in boots5</a></li>
                </ul>
                <a href="javascript:void(0);" width="20px" height="40px" id="prev">《</a>
                <a href="javascript:void(0);" width="20px" height="40px" id="next">》</a>
                <div class="bg"></div> <!-- 图片底部背景层部分-->
                <ul class="infoList"><!-- 图片左下角文字信息部分 -->
                    <li class="infoOn">puss in boots1</li>
                    <li>puss in boots2</li>
                    <li>puss in boots3</li>
                    <li>puss in boots4</li>
                    <li>puss in boots5</li>
                </ul>
                <ul class="indexList"><!-- 图片右下角序号部分 -->
                    <li class="indexOn">1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                    <li>5</li>
                </ul>
            </div>
        </div>

  -------------------------css------------------------

body,div,ul,li,a,img{margin: 0;padding: 0;}
    ul,li{list-style: none;}
    a{text-decoration: none;}

    #wrapper{position: relative;margin: 30px auto;width: 400px;height: 200px;}
    #banner{position:relative;width: 400px;height: 200px;overflow: hidden;}
    .imgList{position:relative;width:2000px;height:200px;z-index: 10;overflow: hidden;}
    .imgList li{float:left;width:400px;height:200px;display: inline;}
    .imgList li:nth-child(1){background: #eee}
    .imgList li:nth-child(2){background: #6db2ec}
    .imgList li:nth-child(3){background: #6decac}
    .imgList li:nth-child(4){background: #ceec53}
    .imgList li:nth-child(5){background: #ec7653}
    #prev,
    #next{position: absolute;top:80px;z-index: 20;cursor: pointer;opacity: 0.2;filter:alpha(opacity=20);background: #eee;font-size: 30px}
    #prev{left: 10px;}
    #next{right: 10px;}
    #prev:hover,
    #next:hover{opacity: 0.5;filter:alpha(opacity=50);}
    .bg{position: absolute;bottom: 0;width: 400px;height: 40px;z-index:20;opacity: 0.4;filter:alpha(opacity=40);background: black;}
    .infoList{position: absolute;left: 10px;bottom: 10px;z-index: 30;}
    .infoList li{display: none;}
    .infoList .infoOn{display: inline;color: white;}
    .indexList{position: absolute;right: 10px;bottom: 5px;z-index: 30;}
    .indexList li{float: left;margin-right: 5px;padding: 2px 4px;border: 2px solid black;background: grey;cursor: pointer;}
    .indexList .indexOn{background: red;font-weight: bold;color: white;}

  ------------------------js-----------------------

var curNum={
                curIndex:0,//当前index
                imgLen:$(".imgList li").length  //图片总数
            }
            // 定时器自动变换2.5秒每次
            var autoChange = setInterval(function(){ 
                if(curNum.curIndex < curNum.imgLen-1){ 
                    curNum.curIndex ++; 
                }else{ 
                    curNum.curIndex = 0;
                }
                //调用变换处理函数
                changeTo(curNum.curIndex);  
            },2500);
            

            //左箭头滑入滑出事件处理
            $("#prev").hover(function(){ 
                //滑入清除定时器
                clearInterval(autoChange);
            },function(){ 
                //滑出则重置定时器
                autoChangeAgain();
            });
            //左箭头点击处理
            $("#prev").click(function(){ 
                //根据curIndex进行上一个图片处理
                curNum.curIndex = (curNum.curIndex > 0) ? (--curNum.curIndex) : (curNum.imgLen - 1);
                changeTo(curNum.curIndex);
            });
            
            //右箭头滑入滑出事件处理
            $("#next").hover(function(){ 
                //滑入清除定时器
                clearInterval(autoChange);
            },function(){ 
                //滑出则重置定时器
                autoChangeAgain();
            });
            //右箭头点击处理
            $("#next").click(function(){ 
                curNum.curIndex = (curNum.curIndex < curNum.imgLen - 1) ? (++curNum.curIndex) : 0;
                changeTo(curNum.curIndex);
            });

            //清除定时器时候的重置定时器--封装
            function autoChangeAgain(){ 
                    autoChange = setInterval(function(){ 
                    if(curNum.curIndex < curNum.imgLen-1){ 
                        curNum.curIndex ++;
                    }else{ 
                        curNum.curIndex = 0;
                    }
                //调用变换处理函数
                    changeTo(curNum.curIndex);  
                },2500);
            }
            
            function changeTo(num){ 
                var goLeft = num *  400;
                $(".imgList").animate({left: "-" + goLeft + "px"},500);
                $(".infoList").find("li").removeClass("infoOn").eq(num).addClass("infoOn");
                $(".indexList").find("li").removeClass("indexOn").eq(num).addClass("indexOn");
            }

            //对右下角按钮index进行事件绑定处理等
            $(".indexList").find("li").each(function(item){ 
                $(this).hover(function(){ 
                    clearInterval(autoChange);
                    changeTo(item);
                    curIndex = item;
                },function(){ 
                    autoChangeAgain();
                });
            });

  

posted @ 2018-06-05 14:07  干就完事儿了  阅读(134)  评论(0)    收藏  举报