1/*! 2* slideViewer 1.2 3* Examples and documentation at: 4* http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html 5* 2007-2010 Gian Carlo Mingati 6* Version: 1.2.3 (9-JULY-2010) 7* Dual licensed under the MIT and GPL licenses: 8* http://www.opensource.org/licenses/mit-license.php 9* http://www.gnu.org/licenses/gpl.html 10* 11* Requires: 12* jQuery v1.4.1 or later 13* 14* 15* Changed by: me @ 10/3/2011 16* 17*/ 18(function ($) { 19 var j = 0; 20 var quantofamo = 0; 21 $.fn.slideView = function (settings) { 22 settings = $.extend({ 23 easeFunc: "easeInOutExpo", 24 easeTime: 750, 25 leftMargin: 60, 26 itemsInARow: 4 27 }, settings); 28 return this.each(function () { 29 var $container = $(this); 30 var $list = $container.find("ul"); 31 $container.addClass("stripViewer"); 32 var pictWidth = $container.find("li").width(); 33 var pictEls = $container.find("li").length; 34 var stripViewerWidth = settings.fromPresentation ? (pictWidth * pictEls) + (pictEls * settings.leftMargin) : pictWidth * pictEls + (pictEls - 1) * settings.leftMargin; 35 $list.css("width", stripViewerWidth); 36 37 var currentPos = 0; 38 var leftButton; 39 var rightButton; 40 41 var frames = Math.floor(pictEls / (settings.itemsInARow - 1)); 42 if (pictEls % (settings.itemsInARow - 1) > 1) 43 frames++; 44 var modulo = pictEls % (settings.itemsInARow - 1) 45 var currentFrame = 1; 46 var $span = $container.parent("div").find("div.scroller span"); 47 $span.text(currentFrame + " / " + frames); 48 49 if (pictEls > settings.itemsInARow) 50 $container.parent("div").hover(function () { 51 $container.parent("div").find("div.scroller").show(); 52 }, function () { 53 $container.parent("div").find("div.scroller").hide(); 54 }); 55 56 var tail = false; 57 var head = true; 58 var isRightToLeft = $("html").prop("dir") == "rtl"; 59 if (settings.fromPresentation) { 60 leftButton = isRightToLeft ? $container.next("div").find("a") : $container.prev("div").find("a"); 61 rightButton = isRightToLeft ? $container.prev("div").find("a") : $container.next("div").find("a"); 62 currentPos = settings.currentPos ? settings.currentPos : 0; 63 currentFrame = settings.currentFrame ? settings.currentFrame == 0 ? currentFrame : settings.currentFrame : currentFrame; 64 if (currentFrame == 1) { 65 head = true; 66 tail = false; 67 } 68 else if (currentFrame >= frames) { 69 tail = true 70 head = false; 71 } 72 else { 73 tail = false; 74 head = false; 75 } 76 77 if (settings.changePos) { 78 if (isRightToLeft) 79 $list.animate({ right: currentPos }, settings.easeTime, settings.easeFunc); 80 else 81 $list.animate({ left: currentPos }, settings.easeTime, settings.easeFunc); 82 83 currentFrame = frames; 84 tail = true; 85 } 86 } 87 else { 88 leftButton = $container.parent("div").find("img.left"); 89 rightButton = $container.parent("div").find("img.right"); 90 } 91 92 var afterChange = function () { 93 $(this).trigger("change"); 94 }; 95 96 leftButton.clickOrEnter(function () { 97 if (head) { 98 currentFrame = frames; 99 tail = true; 100 head = false; 101 currentPos = (pictWidth + settings.leftMargin) * (settings.itemsInARow); 102 if (isRightToLeft) 103 $list.animate({ right: currentPos }, settings.easeTime, settings.easeFunc, function () { 104 currentPos = (modulo == 0 ? settings.itemsInARow - 1 : (settings.fromPresentation && modulo == 1) ? settings.itemsInARow : modulo) * (pictWidth + settings.leftMargin) - (settings.fromPresentation ? 0 : settings.leftMargin); 105 $list.css("right", -($list.width() + settings.leftMargin) + "px"); 106 currentPos -= $list.width(); 107 $list.animate({ right: currentPos }, settings.easeTime, settings.easeFunc, afterChange); 108 $(this).trigger("SliderState", [currentFrame, currentPos]); 109 }); 110 else 111 $list.animate({ left: currentPos }, settings.easeTime, settings.easeFunc, function () { 112 currentPos = (modulo == 0 ? settings.itemsInARow - 1 : (settings.fromPresentation && modulo == 1) ? settings.itemsInARow : modulo) * (pictWidth + settings.leftMargin) - (settings.fromPresentation ? 0 : settings.leftMargin);
113 $list.css("left", -($list.width() + settings.leftMargin) + "px"); 114 currentPos -= $list.width(); 115 $list.animate({ left: currentPos }, settings.easeTime, settings.easeFunc, afterChange); 116 $(this).trigger("SliderState", [currentFrame, currentPos]); 117 }); 118 } 119 else { 120 tail = false; 121 currentFrame--; 122 currentPos += (pictWidth + settings.leftMargin) * (settings.itemsInARow - 1); 123 if (settings.fromPresentation && currentFrame == 1) 124 currentPos = 0; 125 126 if (isRightToLeft) 127 $list.animate({ right: currentPos }, settings.easeTime, settings.easeFunc, afterChange); 128 else 129 $list.animate({ left: currentPos }, settings.easeTime, settings.easeFunc, afterChange); 130 if (currentFrame == 1) { 131 head = true; 132 } 133 } 134 135 if (settings.fromPresentation) { 136 if (!tail) 137 $(this).trigger("SliderState", [currentFrame, currentPos]); 138 } 139 else 140 $span.text(currentFrame + " / " + frames); 141 142 return false; 143 }); 144 145 rightButton.clickOrEnter(function () { 146 if (tail) { 147 currentFrame = 1; 148 tail = false; 149 head = true; 150 if (isRightToLeft) 151 $list.animate({ right: -($list.width() + 15) }, settings.easeTime, settings.easeFunc, function () { 152 currentPos = (modulo == 0 ? settings.itemsInARow - 1 : (settings.fromPresentation && modulo == 1) ? settings.itemsInARow : modulo) * (pictWidth + settings.leftMargin) - (settings.fromPresentation ? 0 : settings.leftMargin); 153 $list.css("right", currentPos + "px"); 154 $list.animate({ right: 0 }, settings.easeTime, settings.easeFunc, afterChange); 155 currentPos = 0; 156 $(this).trigger("SliderState", [currentFrame, currentPos]); 157 }); 158 else 159 $list.animate({ left: -($list.width() + 15) }, settings.easeTime, settings.easeFunc, function () { 160 currentPos = (modulo == 0 ? settings.itemsInARow - 1 : (settings.fromPresentation && modulo == 1) ? settings.itemsInARow : modulo) * (pictWidth + settings.leftMargin) - (settings.fromPresentation ? 0 : settings.leftMargin); 161 $list.css("left", currentPos + "px"); 162 $list.animate({ left: 0 }, settings.easeTime, settings.easeFunc, afterChange); 163 currentPos = 0; 164 $(this).trigger("SliderState", [currentFrame, currentPos]); 165 }); 166 } 167 else { 168 head = false; 169 currentFrame++; 170 if (currentFrame == frames) { 171 tail = true; 172 } 173 currentPos -= (pictWidth + settings.leftMargin) * (settings.itemsInARow - 1); 174 if (isRightToLeft) 175 $list.animate({ right: currentPos }, settings.easeTime, settings.easeFunc, afterChange); 176 else 177 $list.animate({ left: currentPos }, settings.easeTime, settings.easeFunc, afterChange); 178 } 179 180 if (settings.fromPresentation) { 181 if (!head) 182 $(this).trigger("SliderState", [currentFrame, currentPos]); 183 } 184 else 185 $span.text(currentFrame + " / " + frames); 186 187 return false; 188 }); 189 }); 190 }; 191})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.