jquery 实现左右轮播图

 

项目中需要用到类似的效果,本来想偷个懒,网上找个插件就可以了。但是发现插件,不是不太好使,就是代码太多臃肿了点。得了,我还是自己写一个吧!!!

 

 

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>焦点图</title>
    <style>
        body,ul,ol,li {margin:0;padding:0;}
        ul,ol {list-style:none;}
        .slider {width:1000px;height:100px;position:relative;margin:20px auto;border:1px solid #ccc;}
        .list {width:900px;height:60px;margin:20px auto;position:relative;overflow:hidden;}
        .list ul {height:60px;position:absolute;top:0;left:0;}
        .list li {width:80px;height:60px;float:left;margin-right:10px;display:inline;background-color:#ccf;line-height:60px;text-align:center;}
        .dots {width:100%;height:20px;position:absolute;left:0;bottom:0;text-align:center;}
        .dots li {display:inline-block;*display:inline;zoom:1;font-size:30px;color:#ccc;line-height:20px;cursor:pointer;}
        .dots .cur {color:#888;}
        .prev, .next {position:absolute;top:30px;font-size:30px;color:#aaa;cursor:pointer;}
        .prev {left:10px;}
        .next {right:10px;}
    </style>
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script>
        $(function(){
            var slider = $(".slider");
            var list = slider.find(".list");
            var ul = list.find("ul");
            var prev = slider.find(".prev");
            var next = slider.find(".next");
            var li = ul.find("li");
            var timer = null;
            var i = 0;
            ul.width(li.eq(0).outerWidth(true) * li.length);
            var list_width = parseInt(list.width());
            var ul_width = parseInt(ul.width());
            var num = Math.floor(ul_width/list_width);

            var ol = $("<ol class='dots'></ol>");
            for(var i=0; i<=num; i++){
                var li = $("<li>&bull;</li>");
                ol.append(li);
            }
            slider.append(ol);
            var dots_li = $(".dots li");
            dots_li.eq(0).addClass("cur");
            dots_li.click(function(){
                i = dots_li.index(this);
                switching(i);
            });

            function switching(i){
                ul.animate({"left": -i * list_width + "px"}, "fast");
                dots_li.eq(i).addClass("cur").siblings().removeClass("cur");
            }

            function autoplay(){
                i++;
                if(i > num){
                    i = 0;
                }
                switching(i);
            }

            prev.click(function(){
                i--;
                if(i == -1){
                    i = num;
                }
                switching(i);
            });
            next.click(function(){
                autoplay();
            });

            timer = setInterval(autoplay, 3000);
            slider.mouseover(function(){
                clearInterval(timer);
            }).mouseout(function(){
                timer = setInterval(autoplay, 3000);
            });

        });
    </script>
</head>
<body>



<div class="slider">
    <div class="list">
        <ul class="c">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
            <li>9</li>
            <li>10</li>
            <li>11</li>
            <li>12</li>
            <li>13</li>
            <li>14</li>
            <li>15</li>
            <li>16</li>
            <li>17</li>
            <li>18</li>
            <li>19</li>
            <li>20</li>
            <li>21</li>
            <li>22</li>
        </ul>
    </div>
    <a class="prev"><</a>
    <a class="next">></a>
</div>



</body>
</html>

 

 

 

 

posted @ 2013-11-25 22:15  赵小磊  阅读(382)  评论(0)    收藏  举报
回到头部