一个带百叶窗焦点图片的jQuery插件源码发布

实现了百叶窗、左右、上下的焦点图片切换,兼容IE 6-10 ,firefox,chorme.

源码下载地址:http://download.csdn.net/detail/aofengdaxia/6898081

 

插入几种效果:

 

 

主要代码:

 

[javascript] view plaincopyprint?
 
  1. /** 
  2.  * Created by aofengdaxia on 14-2-4. 
  3.  */  
  4. (function ($) {  
  5.   
  6.     $.fn.slider = function (option) {  
  7.   
  8.         var defaults = {  
  9.             stay: 3000,  
  10.             type: "box",  
  11.             speed: 600,  
  12.             direction: "leftRight",  
  13.             rowNum: 5,  
  14.             columnNum: 10,  
  15.             boxOut: { width: "0px", height: "0px", opacity: "0"}  
  16.         }  
  17.         var index = 0;  
  18.         var next = 1;  
  19.         var timer;  
  20.         var opt = $.extend(defaults, option);  
  21.         var stage = $(this);  
  22.         var sw = stage.width();  
  23.         var sh = stage.height();  
  24.         var pics = stage.children("img");  
  25.   
  26.         if ($(this).length > 1) {  
  27.             pics.hide();  
  28.             alert("please config the slider pic. make sure single object");  
  29.             return;  
  30.         }  
  31.         stage.html("");  
  32.         if (opt.direction != "leftRight" && opt.type != "box") {  
  33.             stage.html("<div style=‘width: " + sw + "px; height: " + sh + "px; overflow: hidden;‘><div class=‘tbStage‘ style=‘ overflow:hidden; ‘></div></div>");  
  34.             stage.find(".tbStage").append(pics);  
  35.             pics.css("float""left");  
  36.         } else {  
  37.             stage.append(pics);  
  38.             stage.css("white-space""nowrap");  
  39.         }  
  40.         var totalNum = pics.length;  
  41.   
  42.         stage.css("overflow""hidden");  
  43.         pics.css("width", sw + "px");  
  44.         pics.css("height", sh + "px");  
  45.   
  46.         if (opt.type == "box") {  
  47.             pics.hide();  
  48.             stage.append("<div style=‘ width: " + sw + "px; height: " + sh + "px; overflow:hidden;‘ class=‘slider1‘></div>");  
  49.             stage.append("<div style=‘ position: absolute;  width: " + sw + "px; height: " + sh + "px; overflow:hidden; " +  
  50.                 "margin-top:-" + sh + "px;‘ class=‘slider2‘></div>")  
  51.             stage.find(".slider1").html("<img src=‘" + pics.eq(index).attr("src") + "‘ " +  
  52.                 "style=‘width:" + sw + "px; height:" + sh + "px‘ />");  
  53.             stage.find(".slider1").css("z-index""0");  
  54.             stage.find(".Slider2").css("z-index""1");  
  55.         }  
  56.         addBtn();  
  57.         addTimer();  
  58.         stage.find(".tPager").click(function () {  
  59.             clearInterval(timer);  
  60.             var nIndex = $(this).attr("index");  
  61.             change(index, nIndex);  
  62.             index = nIndex;  
  63.             addTimer();  
  64.         });  
  65.   
  66.         function addBtn() {  
  67.             var pl = pics.length;  
  68.             var html = "";  
  69.             html += "<div style=‘ margin-top: -30px; margin-left: " + (sw - pl * 25 - 30) + "px;   height: 20px; position: absolute; z-index: 9999‘>"  
  70.             for (var i = 0; i < pl; i++) {  
  71.                 html += "<span class=‘tPager‘ index=‘" + i + "‘ style=‘cursor:pointer; display: block; width: 15px; height: 15px; float: left; margin-left: 10px; background-color: aquamarine‘></span>"  
  72.             }  
  73.             html += "</div>"  
  74.             stage.append(html);  
  75.         }  
  76.   
  77.         function addTimer() {  
  78.             timer = setInterval(function () {  
  79.                 next = parseInt(index) + 1;  
  80.                 if (next >= totalNum) {  
  81.                     next = 0;  
  82.                 }  
  83.                 change(index, next);  
  84.                 index = next;  
  85.             }, opt.stay);  
  86.         }  
  87.   
  88.         function change(i, n) {  
  89.             if (opt.type == "box") {  
  90.   
  91.                 stage.find(".slider1").html("<img src=‘" + pics.eq(n).attr("src") + "‘ style=‘width:" + sw + "px; height:" + sh + "px‘ />");  
  92.   
  93.                 MakeBoxes(pics.eq(i));  
  94.                 $(".boxes").each(function () {  
  95.                     $(this).animate(opt.boxOut, opt.speed);  
  96.                 });  
  97.             } else {  
  98.                 MoveTo(i, n);  
  99.             }  
  100.             stage.find(".tPager[index=" + i + "]").css("border""0px solid black").css("backgroundColor""aquamarine");  
  101.   
  102.             stage.find(".tPager[index=" + n + "]").css("border""1px solid red").css("backgroundColor""red");  
  103.         }  
  104.   
  105.         function MakeBoxes(obj) {  
  106.             var r = opt.rowNum;  
  107.             var c = opt.columnNum;  
  108.             var bw = Math.round(sw / c);  
  109.             var bh = Math.round(sw / r);  
  110.   
  111.             var htmls = "";  
  112.   
  113.             var ii = 0;  
  114.             for (var j = 0; j < r; j++) {  
  115.                 for (var i = 0; i < c; i++) {  
  116.                     var ml = -1 * bw * i;  
  117.                     var mt = -1 * bh * j;  
  118.   
  119.                     htmls += "<div style=‘position: absolute; margin-left: " + (-1 * ml) + "px; " +  
  120.                         "margin-top: " + (-1 * mt) + "px; width: " + bw + "px; height: " + bh + "px; overflow: hidden; float: left;  z-index:1‘" +  
  121.                         " class=‘boxes‘ index=" + ii + ">"  
  122.                     htmls += "<img src=‘" + obj.attr("src") + "‘ style=‘margin-left: " + ml + "px; margin-top:" + mt + "px; width: "  
  123.                         + sw + "px; height: " + sh + "px;  z-index:1;‘ />";  
  124.                     htmls += "</div>"  
  125.                     ii++;  
  126.                 }  
  127.             }  
  128.             stage.find(".slider2").html(htmls)  
  129.         }  
  130.   
  131.         function MoveTo(i, n) {  
  132.   
  133.             if (opt.direction == "leftRight") {  
  134.                 var ml = -1 * n * sw;  
  135.                 pics.eq(0).animate({ marginLeft: ml + "px"}, opt.speed);  
  136.             } else {  
  137.                 var mt = -1 * n * sh;  
  138.                 stage.find(".tbStage").animate({ marginTop: mt + "px"}, opt.speed);  
  139.             }  
  140.         }  
  141.     }  
  142.   
  143. })(jQuery);  

使用方法

 

 

 

[html] view plaincopyprint?
 
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <title></title>  
  5.     <script type="text/javascript" src="Script/jquery-1.4.2.min.js"></script>  
  6.     <script type="text/javascript" src="Slider.js"></script>  
  7.     <link href="main.css" type="text/css"/>  
  8.     <script type="text/javascript">  
  9.         $(document).ready(function () {  
  10.             $(".focus").slider({ type:"move", direction:"leftRight",stay:4000});  
  11.             $(".focus2").slider({ type:"move", direction:"topBottom",stay:3000});  
  12.             $(".focus3").slider({ type:"box", columnNum:30, rowNum:20,stay:2000});  
  13.         });  
  14.     </script>  
  15. </head>  
  16. <body>  
  17. <div class="focus" style="width: 660px; height: 300px;  margin:0 auto; ">  
  18.     <img src="images/1.jpg"/>  
  19.     <img src="images/2.jpg"/>  
  20.     <img src="images/3.jpg"/>  
  21.     <img src="images/4.jpg"/>  
  22.     <img src="images/5.jpg"/>  
  23.     <img src="images/6.jpg"/>  
  24. </div>  
  25. <div class="focus2" style="width: 660px; height: 300px;  margin:0 auto; ">  
  26.     <img src="images/1.jpg"/>  
  27.     <img src="images/2.jpg"/>  
  28.     <img src="images/3.jpg"/>  
  29.     <img src="images/4.jpg"/>  
  30.     <img src="images/5.jpg"/>  
  31.     <img src="images/6.jpg"/>  
  32. </div>  
  33. <div class="focus3" style="width: 660px; height: 300px;  margin:0 auto; ">  
  34.     <img src="images/1.jpg"/>  
  35.     <img src="images/2.jpg"/>  
  36.     <img src="images/3.jpg"/>  
  37.     <img src="images/4.jpg"/>  
  38.     <img src="images/5.jpg"/>  
  39.     <img src="images/6.jpg"/>  
  40. </div>  
  41. </body>  
  42. </html>  


源码下载地址:http://download.csdn.net/detail/aofengdaxia/6898081

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。