圖片左右滑動整理爲插件

在作web前端開發中,圖片左右滑動的功能很是經常使用。在本身的改進下,這款插件支持css

1.滑動方向的控制,上下滑動,左右滑動。html

2.可隨意改變滑動的區域大小前端

3.滑動中的樣式均可以自定義。web

4.兼容性良好,moz,ie,webkitide

5.對滑動加入延遲加載this

6.支持頁面中的多處調用url

如下是代碼解析:spa

下看html結構:插件

      
/*參數
horizontal爲1,水平滾動,
爲0,垂直滾動,
可根據需求改變CSS知足頁面要求
*/
<div class="cnt_goods_wrap cfix picSilde_style" horizontal="1"> <div class="cnt_goods_box"> <ul class="cnt_goods_list fl cfix cnt_border" > <li class="cnt_goods_item"> <div class="pro_img"> <a target="_blank" title="麥多多 Apple/蘋果ipad5/ipad air鋼化玻璃膜" href="http://www.okhqb.com/item/1000107901.html"> <img alt="麥多多 Apple/蘋果ipad5/ipad air鋼化玻璃膜" data-original="http://img1.hqbcdn.com/thumbs/product/bc/9c/bc9cfa5d80ce9c978b39fe9ac48cd70c.218.jpg" class="lazy" src="http://s.hqbcdn.com/assets/v3/images/blank.gif" style="display: inline;"></a> </div> </li> </ul> </div> <div style="clear:both" class=""></div> </div>
 

CSS文件類容code

.cnt_goods_wrap .cnt_goods_box{ position:relative; width:1198px; height:351px; overflow:hidden; float:left;  z-index:1; }
.cnt_goods_wrap .cnt_goods_box .cnt_goods_list{    position:absolute; top:0px; left:0px;  }
.cnt_goods_wrap .cnt_goods_box .cnt_goods_list li{ width:239px;  background:#fff; float:left; }
.cnt_goods_wrap .cnt_goods_box .cnt_goods_list li  .pro_img{ width:239px;  text-align:center; vertical-align:middle; display:table-cell; *display: block; *font-family:Arial; } 
.cnt_goods_wrap .cnt_goods_box .cnt_goods_list li  .pro_img img{ width:218px; height:218px; text-align:center; vertical-align:middle; margin-top:25px; }
.cnt_goods_wrap .pre{ position:absolute; top:100px; left:10px; z-index:88; width:34px; height:107px;}
.cnt_goods_wrap .pre a{display:block; background:url(images/left_btn.jpg) no-repeat; 
width:34px; height:107px;  z-index:288;  }
.cnt_goods_wrap .next{ position:absolute; top:100px; right:10px; z-index:288; width:34px; height:107px;  }
.cnt_goods_wrap .next a{ display:block; background:url(images/right_btn.jpg) no-repeat; 
width:34px; height:107px;  }
.cnt_goods_wrap .pre a:hover{ }
.cnt_goods_wrap .next a:hover{ }

 對應的插件js內容:

$.extend({
        /*調用滑動*/
        /*根據加載的li標籤數量初始化HTML中的結構*/
    $(".cnt_goods_list").each(function(i,index){
        var _hori = $(this).parents('.cnt_goods_wrap').attr('horizontal'),
            _hori = parseInt( _hori );
        if(_hori){
            var cgi_w = $(this).find("li.cnt_goods_item").outerWidth(true);
            var cgl_width = ( $(index).find(".cnt_goods_item").length ) *cgi_w;
            $(index).css("width", cgl_width+"px");    
        }else{
            var cgi_h = $(this).find("li.cnt_goods_item").outerHeight(true);
            var cgl_height = ( $(index).find(".cnt_goods_item").length ) *cgi_h;
            $(index).css("height", cgl_height+"px");    
        }
    });
     /*只有一屏的時候,不出現左右滑動箭頭*/
     $(".cnt_goods_list").each(function(){
        var i = $(picSilde_style).find('.cnt_goods_box').width() / $(picSilde_style).find('li.cnt_goods_item').width();
            i = floor(i);
         var style_len = ($(this).find("li.cnt_goods_item").length)/i;    
         if( style_len <= 1 ){
            $(this).parents(".cnt_goods_wrap").find(".pre").hide();    
            $(this).parents(".cnt_goods_wrap").find(".next").hide();     
         }
     })
     
   picScroll: function(picSilde_style){
        var page =1;
        var hori;
    
        var _next = $(picSilde_style).children(".next");
        var _pre = $(picSilde_style).children(".pre");
        var _hori  = $(picSilde_style).attr('horizontal'),
            _hori = parseInt( _hori );
    var i = $(picSilde_style).find('.cnt_goods_box').width() / $(picSilde_style).find('li.cnt_goods_item').width();
            i = floor(i);
            
        /*next down*/
        /*處理向下箭頭,向後箭頭*/
        $(_next).click(function(){
            var cnt_goods_box = $(this).siblings(".cnt_goods_box");
            var cnt_goods_list = cnt_goods_box.find(".cnt_goods_list");
            var cgb_width = cnt_goods_box.width();
            var cgb_height = cnt_goods_box.height();
            var page_temp =  parseInt((cnt_goods_list.find("li.cnt_goods_item").length)/i ) ;        
            var remainder  = (cnt_goods_list.find("li.cnt_goods_item").length)%i;
            var page_count;
            if( remainder == 0 ){
                page_count = page_temp;    
            }else{
                page_count = page_temp + 1;    
            }
            
            if( $(this).siblings(".pre").find("a").hasClass("pre_unable")){
                    $(this).siblings(".pre").find("a").removeClass("pre_unable");
            }
            
            
            if( !cnt_goods_list.is(":animated") ){
                if(page == page_count ){    
                  $(this).find("a").addClass("next_unable");
                 }else{        
                    if( _hori ){
                           cnt_goods_list.animate({left:'-='+cgb_width},'5000');
                    }else{
                        cnt_goods_list.animate({top:'-='+cgb_height},'5000');
                        }
                   page++;             
                 }
             }        
        });
        
        /*pre up*/
      /*處理向上箭頭,向前箭頭*/
        $(_pre).click(function(){
            var cnt_goods_box = $(this).siblings(".cnt_goods_box");
            var cnt_goods_list = cnt_goods_box.find(".cnt_goods_list");
            var cgb_width = cnt_goods_box.width();
            var cgb_height = cnt_goods_box.height();
            var page_temp =  parseInt((cnt_goods_list.find(".cnt_goods_item").length)/i ) ;        
            var remainder  = (cnt_goods_list.find("li.cnt_goods_item").length)%i;        
            var page_count;
            
            if( $(this).siblings(".next").find("a").hasClass("next_unable")){
                    $(this).siblings(".next").find("a").removeClass("next_unable");
            }
            
            if( remainder == 0 ){
                page_count = page_temp;    
            }else{
                page_count = page_temp + 1;    
            }
            if( !cnt_goods_list.is(":animated") ){
                if(page == 1){    
                  $(this).find("a").addClass("pre_unable");
                 }else{ 
                   page--;
                   if( _hori ){
                           cnt_goods_list.animate({left:'+='+cgb_width},'slow');    
                   }else{
                       cnt_goods_list.animate({top:'+='+cgb_height},'slow');    
                    }
                 }
             }        
        });
        
        $(_pre).trigger("click");     
   }
})

調用方式:

$.picScroll('.picSilde_style');
相關文章
相關標籤/搜索