• [原创作品]轮播焦点图插件的实现


      在上上一期写了怎么写jq插件,现在,我把我写的一个焦点图插件贡献出来。不会写插件的朋友们可以参考我上次写的:http://www.cnblogs.com/zhutty/p/4630110.html。因为jq比较好掌握,以后这方面的介绍会少些,之后将与大家共享Angular,node,require,backbone等js内容。其实只要掌握了几种,其他都会变得很简单。计算机技术日新月异,作为一名程序员,应该具备快速学习的能力。好了,不废话。欢迎加群一起讨论交流算法-软件开发

      直接上代码,可能不是最好的,欢迎吐槽。

     1 /**
     2  * Created by Steven on 2015/07/10/0010.
     3  * @email zhuttymore@126.com
     4  */
     5 
     6 (function ($) {
     7 
     8     $.fn.slider = function (opt) {
     9         opt = $.extend({
    10             speed:'fast',
    11             auto: false,
    12             interval: 1000
    13         }, opt);
    14 
    15         var _this = this;
    16         var index = 0;
    17         _this.find('.window li').width(_this.width());
    18 
    19         var animate = function(index){
    20             var win = _this.find('.window');
    21             var offset = win.parent().width();
    22             win.animate({'marginLeft': -offset * index}, opt.speed);
    23             _this.find('.tab li').removeClass('select');
    24             _this.find('.tab li').eq(index).addClass('select');
    25         };
    26 
    27         _this.find('.tab li').mouseover(function () {
    28             index = parseInt($(this).index());
    29             animate(index);
    30 
    31         });
    32 
    33         _this.find('.btn li:first-child').click(function(){
    34             --index;
    35             if(index < 0){
    36                 index = _this.find('.window li').length - 1;
    37             }
    38             animate(index);
    39         });
    40 
    41         _this.find('.btn li:last-child').click(function(){
    42             ++index;
    43             if(index >= _this.find('.window li').length){
    44                 index = 0;
    45             }
    46             animate(index);
    47         });
    48 
    49         if(opt.auto){
    50             var time = setInterval(function(){
    51                 ++index;
    52                 if(index >= _this.find('.window li').length){
    53                     index = 0;
    54                 }
    55                 animate(index);
    56             },opt.interval);
    57         }
    58 
    59         return $.each(this,function(index,ele){});
    60     };
    61 
    62 })(jQuery);

    Html

     1 <div class="slider">
     2         <ul class="btn">
     3             <li><i class=" icon-caret-left"></i></li>
     4             <li><i class=" icon-caret-right"></i></li>
     5         </ul>
     6         <ul class="window">
     7             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591046_561095.jpg" alt=""/></li>
     8             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591047_607794.jpg" alt=""/></li>
     9             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591048_865919.jpg" alt=""/></li>
    10             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_590990_446978.jpg" alt=""/></li>
    11         </ul>
    12         <ul class="tab">
    13             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591046_561095.jpg" alt=""/></li>
    14             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591047_607794.jpg" alt=""/></li>
    15             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591048_865919.jpg" alt=""/></li>
    16             <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_590990_446978.jpg" alt=""/></li>
    17         </ul>
    18     </div>

    CSS

     1 .slider {
     2     height: 440px;
     3     overflow: hidden;
     4     position: relative;
     5 }
     6 .slider .btn li{
     7     position: absolute;
     8     width: 30px;
     9     height: 50px;
    10     cursor: pointer;
    11     color: #fff;
    12     text-align: center;
    13     font-size: 40px;
    14     top:45%;
    15 }
    16 .slider .btn li:first-child {
    17 
    18     left:0;
    19 
    20 }
    21 
    22 .slider .btn li:last-child {
    23 
    24     right:0;
    25 
    26 }
    27 
    28 .slider img {
    29     width: 100%;
    30     height: 100%;
    31 }
    32 
    33 .slider .window {
    34     width: 40000px;
    35     height: 400px;
    36     overflow: hidden;
    37 }
    38 
    39 .slider .window li {
    40     float: left;
    41     overflow: hidden;
    42     width: 1200px;
    43 }
    44 
    45 .slider .tab {
    46     position: absolute;
    47     z-index: 5;
    48     width: 880px;
    49     margin: -40px auto;
    50     left: 13%;
    51 }
    52 
    53 .slider .tab li {
    54     float: left;
    55     width: 200px;
    56     height: 80px;
    57     margin-left: 18px;
    58     cursor: pointer;
    59 }

    Css文件可以根据需求自己DIY, 但html的.slider里面的结构应该是一样。

    Run 起来:

    1        $('.slider').slider({auto: true, interval: 2000});

    改进js结构:

    /**
     * Created by Steven on 2015/07/10/0010.
     * @email zhuttymore@126.com
     */
    
    (function ($) {
    
        $.fn.extend({
            slider:function (opt) {
                opt = $.extend({
                  
                }, opt);
               //Do something here
             
                return $.each(this,function(index,ele){});
            }
        });
    
    })(jQuery);

    OK,就这样。原创作品,转载请注明出处http://zhutty.cnblogs.com

  • 相关阅读:
    SIP穿越NAT SIP穿越防火墙-SBC
    安卓SAX解析XML文件
    C#进阶系列——WebApi 异常处理解决方案
    C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
    C#进阶系列——WebApi 接口参数不再困惑:传参详解
    C#进阶系列——WebApi 身份认证解决方案:Basic基础认证
    C#进阶系列——WebApi 跨域问题解决方案:CORS
    C#进阶系列——WebApi 接口测试工具:WebApiTestClient
    微信公众平台向特定用户推送消息
    JSONP跨域的原理解析
  • 原文地址:https://www.cnblogs.com/zhutty/p/4650582.html
Copyright © 2020-2023  润新知