1/** 2 * jQuery Tao Slider v1.1.1 3 * mutli purpose custom jquery slider 4 * 5 * @package tao|cms 6 * @author Tao Interactive Inc <[email protected]> 7 * @source Nivo slider - Dev7studios (Distributed under the MIT license.) 8 * 9 */ 10 11(function($) { 12 var TAOSlider = function(element, options){ 13 // setting of the slider 14 var settings = $.extend({}, $.fn.taoSlider.defaults, options), 15 timer,slider,allSlides,i,taoAnimate,vars; 16 17 // variables of the current slider 18 vars = { 19 currentSlide: 0, 20 previousSlide: 0, 21 currentImage: '', 22 totalSlides: 0, 23 running: false, 24 paused: false, 25 stop: false, 26 navElement: false, 27 forceSlide: false, 28 loop: false, 29 leftPos: 0, 30 topPos: 0, 31 totalWidth: 0, 32 totalHeight: 0, 33 slideWidth:0 34 } 35 // set slider to variable 36 slider = $(element); 37 slider.data('taovars', vars).addClass('taoSlider'); // store data to the element 38 allSlides = slider.find('.base'); 39 vars.totalSlides = allSlides.length; 40 41 42 if(vars.totalWidth==0) { 43 allSlides.each(function() { vars.totalWidth += $(this).outerWidth(); vars.totalHeight=parseInt(vars.totalHeight)+parseInt($(this).outerHeight()); }); 44 } 45 46 if(settings.effect=='simpleScroll'){ 47 vars.totalWidth=settings.slideWidth*vars.totalSlides; 48 } 49 50 // Show initial slide 51 if(vars.currentSlide==0){ 52 $(allSlides[0]).addClass('activeSlide').css('display','block').css('opacity','1'); 53 } 54 55 // Add navigation html to the slide 56 if(settings.showNav && settings.showTabs==false){ 57 vars.navElement = $('<div class="taoNav"></div>'); 58 slider.append(vars.navElement); 59 for(i = 0; i < vars.totalSlides ; i++){ 60 vars.navElement.append('<a class="taoNavlink" rel="'+ i +'">'+ (i + 1) +'</a>'); 61 } 62 //Set initial active link 63 $('a:eq('+ vars.currentSlide +')', vars.navElement).addClass('active'); 64 65 $('a', vars.navElement).bind('click', function(){ 66 if(vars.running) return false; 67 if(vars.paused) vars.paused=false; 68 if($(this).hasClass('active')) return false; 69 clearInterval(timer); 70 timer = ''; 71 vars.previousSlide=vars.navElement.find('.active').attr('rel'); 72 $(allSlides[vars.previousSlide]).find('iframe').attr('src', $(allSlides[vars.previousSlide]).find('iframe').attr('src')); 73 vars.currentSlide = $(this).attr('rel') - 1; 74 taoAnimate(slider, allSlides, settings, 'nav'); 75 }); 76 ver=$.fn.jquery.replace('.','').substring(0,2); 77 if(ver<14){ 78 $('.activeSlide').live('click touch', function(){ 79 pauseAnimation(slider); 80 }); 81 $('.activeSlide iframe').live('mouseover touchstart touch', function(){ 82 pauseAnimation(slider); 83 }); 84 } 85 else if(ver<17){ 86 slider.delegate('click touch','.activeSlide', function(){ 87 pauseAnimation(slider); 88 }); 89 slider.delegate('mouseover touchstart touch', '.activeSlide iframe', function(){ 90 pauseAnimation(slider); 91 }); 92 } else { 93 slider.on('click touch','.activeSlide', function(){ 94 pauseAnimation(slider); 95 }); 96 slider.on('mouseover touchstart touch', '.activeSlide iframe', function(){ 97 pauseAnimation(slider); 98 }); 99 } 100 } 101 102 // show tabs section 103 if(settings.showTabs){ 104 vars.navElement = $('<div class="taoTab_blk"></div>'); 105 slider.append(vars.navElement); 106 for(i = 0; i < vars.totalSlides ; i++){ 107 data=$(allSlides[i]).find('.'+settings.tabClass).html(); 108 if(data!==undefined){ 109 vars.navElement.append('<a class="'+settings.tabClass+'" rel="'+ i +'">'+ data +'</a>'); 110 $(allSlides[i]).find('.'+settings.tabClass).remove(); 111 } 112 } 113 //Set initial active link 114 $('a:eq('+ vars.currentSlide +')', vars.navElement).addClass('active'); 115 116 $('a', vars.navElement).bind('click', function(){ 117 if(vars.running) return false; 118 if(vars.paused) vars.paused=false; 119 if($(this).hasClass('active')) return false; 120 clearInterval(timer); 121 timer = ''; 122 vars.previousSlide=vars.navElement.find('.active').attr('rel'); 123 $(allSlides[vars.previousSlide]).find('iframe').attr('src', $(allSlides[vars.previousSlide]).find('iframe').attr('src')); 124 vars.currentSlide = $(this).attr('rel') - 1; 125 taoAnimate(slider, allSlides, settings, 'nav'); 126 }); 127 ver=$.fn.jquery.replace('.','').substring(0,2); 128 if(ver<14){ 129 $('.activeSlide').live('click touch', function(){ 130 pauseAnimation(slider); 131 }); 132 $('.activeSlide iframe').live('mouseover touchstart touch', function(){ 133 pauseAnimation(slider); 134 }); 135 } 136 else if(ver<17){ 137 slider.delegate('click touch','.activeSlide', function(){ 138 pauseAnimation(slider); 139 });
140 slider.delegate('mouseover touchstart touch', '.activeSlide iframe', function(){ 141 pauseAnimation(slider); 142 }); 143 } else { 144 slider.on('click touch','.activeSlide', function(){ 145 pauseAnimation(slider); 146 }); 147 slider.on('mouseover touchstart touch', '.activeSlide iframe', function(){ 148 pauseAnimation(slider); 149 }); 150 } 151 } 152 153 // Add Direction nav 154 if(settings.directionNav){ 155 slider.append('<div class="directionNav"><a class="prevNav">'+ settings.prevText +'</a><a class="nextNav">'+ settings.nextText +'</a></div>'); 156 $(slider).on('click', 'a.prevNav', function(){ 157 if(vars.running) { return false; } 158 clearInterval(timer); 159 taoAnimate(slider, allSlides, settings, 'prev'); 160 }); 161 162 $(slider).on('click', 'a.nextNav', function(){ 163 if(vars.running) { return false; } 164 clearInterval(timer); 165 timer = ''; 166 taoAnimate(slider, allSlides, settings, 'next'); 167 }); 168 } 169 170 171 if(settings.effect=='shelf'){ 172 indiWidth = (slider.width()- settings.imgWidth-1)/(vars.totalSlides-1); 173 $(allSlides).css('width', indiWidth); 174 $(allSlides[0]).removeClass('activeSlide'); 175 vars.currentSlide=vars.totalSlides-1; 176 } 177 178 // start slideshow 179 timer = 0; 180 if(vars.totalSlides > 1){ 181 timer = setInterval(function(){ taoAnimate(slider, allSlides, settings, false); }, settings.pauseTime); 182 } 183 184 slider.bind('animationCompleted', function(){ 185 vars.running = false; 186 if(timer==''){ 187 timer = setInterval(function(){ taoAnimate(slider, allSlides, settings, false); }, settings.pauseTime); 188 } 189 190 }); 191 pauseAnimation= function (slider){ 192 var vars = slider.data('taovars'); 193 if(vars.running) return false; 194 if(vars.paused) return false; 195 vars.paused=true; 196 clearInterval(timer); 197 timer = ''; 198 }; 199 taoAnimate = function(slider, allSlides, settings, extra){ 200 // Get vars of the current slider 201 var vars = slider.data('taovars'), 202 previousSlide,currentSlide,taoEffect; 203 if(vars.paused==true){ 204 return; 205 } 206 207 208 // get current slide which is on display 209 if(extra!='nav'){ 210 vars.previousSlide= vars.currentSlide; 211 } 212 213 // get next slide to be animated 214 vars.currentSlide++; 215 if(vars.currentSlide==vars.totalSlides || vars.currentSlide<0){ 216 vars.currentSlide=0; 217 } 218 // get current slide which is on display 219 previousSlide = $(allSlides[vars.previousSlide]); 220 221 currentSlide = $(allSlides[vars.currentSlide]); 222 // update nagviation links 223 if(settings.showNav){ 224 $('a', vars.navElement).removeClass('active'); 225 $('a:eq('+ vars.currentSlide +')', vars.navElement).addClass('active'); 226 } 227 228 229 230 // update status vars 231 vars.running = true; 232 taoEffect = settings.effect; // assign animation effect to a variable 233 if(taoEffect=='scrollLeft'){ 234 if(extra=='prev'){ 235 currentSlide.animate({left: currentSlide.outerWidth()},settings.animSpeed).removeClass('activeSlide'); 236 previousSlide.addClass('activeSlide').css('left', -currentSlide.outerWidth()); 237 previousSlide.animate({left: 0}, settings.animSpeed); 238 slider.trigger('animationCompleted'); 239 } else { 240 previousSlide.animate({left: -currentSlide.outerWidth()},settings.animSpeed).removeClass('activeSlide'); 241 currentSlide.addClass('activeSlide').css('left', currentSlide.outerWidth()); 242 currentSlide.animate({left: 0}, settings.animSpeed); 243 slider.trigger('animationCompleted'); 244 } 245 }else if(taoEffect=='scrollRight') { 246 if(extra=='prev'){ 247 currentSlide.removeClass('activeSlide').animate({left: -currentSlide.outerWidth()},settings.animSpeed); 248 previousSlide.addClass('activeSlide').css('left', currentSlide.outerWidth()); 249 previousSlide.animate({left: 0}, settings.animSpeed); 250 slider.trigger('animationCompleted'); 251 } else{ 252 previousSlide.removeClass('activeSlide').animate({left: currentSlide.outerWidth()},settings.animSpeed); 253 currentSlide.addClass('activeSlide').css('left', -currentSlide.outerWidth()); 254 currentSlide.animate({left: 0}, settings.animSpeed); 255 slider.trigger('animationCompleted'); 256 } 257 258 }else if(taoEffect=='scrollUp') { 259 previousSlide.animate({top: -slider.height()},settings.animSpeed).css('position', 'relative').removeClass('activeSlide'); 260 currentSlide.addClass('activeSlide').css('top', slider.height()).css('position', 'absolute'); 261 currentSlide.animate({top: 0}, settings.animSpeed); 262 slider.trigger('animationCompleted'); 263 }else if(taoEffect=='slideIn') { 264 previousSlide.removeClass('activeSlide').css('zIndex', 0); 265 currentSlide.addClass('activeSlide').css('left', -currentSlide.outerWidth()).css('zIndex', 1); 266 currentSlide.animate({left: 0}, settings.animSpeed); 267 slider.trigger('animationCompleted'); 268 }else if(taoEffect=='slideOut') { 269 previousSlide.removeClass('activeSlide').animate({left: currentSlide.outerWidth()},settings.animSpeed); 270 currentSlide.addClass('activeSlide').css('left', 0); 271 slider.trigger('animationCompleted'); 272 }else if(taoEffect=='fade') { 273 if(extra=='prev'){ 274 //currentSlide.fadeOut(1, function(){ 275 previousSlide.fadeIn(settings.animSpeed*2, function() { 276 $(this).addClass('activeSlide').css({'display': 'block', 'opacity': 1}); 277 });
278 //}); 279 currentSlide.fadeOut(settings.animSpeed*2, function(){ 280 $(this).removeClass('activeSlide'); 281 }); 282 } else { 283 //currentSlide.fadeOut(1, function(){ 284 currentSlide.fadeIn(settings.animSpeed*2, function() { 285 $(this).addClass('activeSlide').css({'display': 'block', 'opacity': 1}); 286 }); 287 //}); 288 previousSlide.fadeOut(settings.animSpeed*2, function(){ 289 $(this).removeClass('activeSlide'); 290 }); 291 } 292 293 294 slider.trigger('animationCompleted'); 295 } else if (taoEffect=='shelf'){ 296 indiWidth = (slider.width()- settings.imgWidth)/(vars.totalSlides-1); 297 previousSlide.removeClass('activeSlide').animate({width: indiWidth},(settings.animSpeed)); 298 currentSlide.addClass('activeSlide').animate({width: settings.imgWidth}, (settings.animSpeed)); 299 } else if(taoEffect=='simpleScroll') { 300 currentSlide.addClass('activeSlide'); 301 previousSlide.removeClass('activeSlide'); 302 if(vars.currentslide!=1){ 303 vars.leftPos=parseInt(settings.slideWidth)*parseInt(vars.currentSlide); 304 //alert(vars.totalWidth+vars.leftPos-vars.slideWidth); 305 if(parseInt(vars.totalWidth)-parseInt(vars.leftPos)<=parseInt(slider.width())){ 306 vars.leftPos=0; 307 allSlides.animate({left: 0}, (settings.animSpeed*2)); 308 slider.trigger('animationCompleted'); 309 } else { 310 allSlides.animate({left: -vars.leftPos}, (settings.animSpeed*2)); 311 slider.trigger('animationCompleted'); 312 } 313 } 314 315 /* if(parseInt(vars.leftPos,10)>=vars.totalWidth-parseInt(slider.parent().width(), 10)){ 316 vars.leftPos='-'+parseInt(settings.slideWidth, 10); 317 } 318 vars.leftPos =parseInt(vars.leftPos, 10)+ parseInt(settings.slideWidth, 10); 319 currentSlide.addClass('activeSlide'); 320 allSlides.animate({left: -vars.leftPos}, (settings.animSpeed*2)); 321 slider.trigger('animationCompleted');*/ 322 } 323 else if(taoEffect=='marque') { 324 allSlides.removeClass('activeSlide'); 325 preHeight=previousSlide.height(); 326 if(parseInt(vars.topPos)>=vars.totalHeight-parseInt(slider.parent().height())){ 327 vars.topPos=0; 328 $(allSlides[0]).addClass('activeSlide'); 329 vars.currentSlide=0; 330 } else { 331 vars.topPos =parseInt(vars.topPos)+ parseInt(preHeight); 332 currentSlide.addClass('activeSlide'); 333 } 334 allSlides.animate({top: -vars.topPos}, (settings.animSpeed*2)); 335 slider.trigger('animationCompleted'); 336 } 337 if(extra=='prev'){ 338 if(vars.currentSlide>1){ 339 vars.currentSlide=parseInt(vars.currentSlide)-2; 340 } else if(vars.currentSlide<=1 || vars.currentSlide==0){ 341 vars.currentSlide=0; 342 } 343 } 344 345 }; 346 347 348 return this; 349}; 350 $.fn.taoSlider = function(options) { 351 return this.each(function(key, value){ 352 var element = $(this),taoslider; 353 // Return early if this element already has a plugin instance 354 if (element.data('taoslider')) { return element.data('taoslider'); } 355 // Pass options to plugin constructor 356 taoslider = new TAOSlider(this, options); 357 // Store plugin object in this element's data 358 element.data('taoslider', taoslider); 359 }); 360 }; 361 //Default settings 362 $.fn.taoSlider.defaults = { 363 effect: 'scrollLeft', 364 animSpeed: 500, 365 pauseTime: 5000, 366 startSlide: 0, 367 showNav: true, 368 showTabs: false, 369 tabClass: 'taoTab', 370 directionNav: false, 371 prevText: 'Prev', 372 nextText: 'Next', 373 imgWidth: 0, 374 slideWidth: 0 375 }; 376 377})(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.