| Total Complexity | 184 |
| Complexity/F | 3.61 |
| Lines of Code | 918 |
| Function Count | 51 |
| Duplicated Lines | 202 |
| Ratio | 22 % |
| Changes | 0 | ||
Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
Complex classes like pixelegg/js/supersized.3.2.7.js often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
| 1 | /* |
||
| 13 | (function($){ |
||
| 14 | |||
| 15 | /* Place Supersized Elements |
||
| 16 | ----------------------------*/ |
||
| 17 | $(document).ready(function() { |
||
| 18 | $('body').append('<div id="supersized-loader"></div><ul id="supersized"></ul>'); |
||
| 19 | }); |
||
| 20 | |||
| 21 | |||
| 22 | $.supersized = function(options){ |
||
| 23 | |||
| 24 | /* Variables |
||
| 25 | ----------------------------*/ |
||
| 26 | var el = '#supersized', |
||
| 27 | base = this; |
||
| 28 | // Access to jQuery and DOM versions of element |
||
| 29 | base.$el = $(el); |
||
| 30 | base.el = el; |
||
| 31 | vars = $.supersized.vars; |
||
| 32 | // Add a reverse reference to the DOM object |
||
| 33 | base.$el.data("supersized", base); |
||
| 34 | api = base.$el.data('supersized'); |
||
| 35 | |||
| 36 | base.init = function(){ |
||
| 37 | // Combine options and vars |
||
| 38 | $.supersized.vars = $.extend($.supersized.vars, $.supersized.themeVars); |
||
| 39 | $.supersized.vars.options = $.extend({},$.supersized.defaultOptions, $.supersized.themeOptions, options); |
||
| 40 | base.options = $.supersized.vars.options; |
||
| 41 | |||
| 42 | base._build(); |
||
| 43 | }; |
||
| 44 | |||
| 45 | |||
| 46 | /* Build Elements |
||
| 47 | ----------------------------*/ |
||
| 48 | base._build = function(){ |
||
| 49 | // Add in slide markers |
||
| 50 | var thisSlide = 0, |
||
| 51 | slideSet = '', |
||
| 52 | markers = '', |
||
| 53 | markerContent, |
||
| 54 | thumbMarkers = '', |
||
| 55 | thumbImage; |
||
| 56 | |||
| 57 | while(thisSlide <= base.options.slides.length-1){ |
||
| 58 | //Determine slide link content |
||
| 59 | switch(base.options.slide_links){ |
||
| 60 | case 'num': |
||
| 61 | markerContent = thisSlide; |
||
| 62 | break; |
||
| 63 | case 'name': |
||
| 64 | markerContent = base.options.slides[thisSlide].title; |
||
| 65 | break; |
||
| 66 | case 'blank': |
||
| 67 | markerContent = ''; |
||
| 68 | break; |
||
| 69 | } |
||
| 70 | |||
| 71 | slideSet = slideSet+'<li class="slide-'+thisSlide+'"></li>'; |
||
| 72 | |||
| 73 | if(thisSlide == base.options.start_slide-1){ |
||
| 74 | // Slide links |
||
| 75 | if (base.options.slide_links)markers = markers+'<li class="slide-link-'+thisSlide+' current-slide"><a>'+markerContent+'</a></li>'; |
||
| 76 | // Slide Thumbnail Links |
||
| 77 | if (base.options.thumb_links){ |
||
| 78 | base.options.slides[thisSlide].thumb ? thumbImage = base.options.slides[thisSlide].thumb : thumbImage = base.options.slides[thisSlide].image; |
||
| 79 | thumbMarkers = thumbMarkers+'<li class="thumb'+thisSlide+' current-thumb"><img src="'+thumbImage+'"/></li>'; |
||
| 80 | }; |
||
| 81 | }else{ |
||
| 82 | // Slide links |
||
| 83 | if (base.options.slide_links) markers = markers+'<li class="slide-link-'+thisSlide+'" ><a>'+markerContent+'</a></li>'; |
||
| 84 | // Slide Thumbnail Links |
||
| 85 | if (base.options.thumb_links){ |
||
| 86 | base.options.slides[thisSlide].thumb ? thumbImage = base.options.slides[thisSlide].thumb : thumbImage = base.options.slides[thisSlide].image; |
||
| 87 | thumbMarkers = thumbMarkers+'<li class="thumb'+thisSlide+'"><img src="'+thumbImage+'"/></li>'; |
||
| 88 | }; |
||
| 89 | } |
||
| 90 | thisSlide++; |
||
| 91 | } |
||
| 92 | |||
| 93 | if (base.options.slide_links) $(vars.slide_list).html(markers); |
||
| 94 | if (base.options.thumb_links && vars.thumb_tray.length){ |
||
| 95 | $(vars.thumb_tray).append('<ul id="'+vars.thumb_list.replace('#','')+'">'+thumbMarkers+'</ul>'); |
||
| 96 | } |
||
| 97 | |||
| 98 | $(base.el).append(slideSet); |
||
| 99 | |||
| 100 | // Add in thumbnails |
||
| 101 | if (base.options.thumbnail_navigation){ |
||
| 102 | // Load previous thumbnail |
||
| 103 | vars.current_slide - 1 < 0 ? prevThumb = base.options.slides.length - 1 : prevThumb = vars.current_slide - 1; |
||
| 104 | $(vars.prev_thumb).show().html($("<img/>").attr("src", base.options.slides[prevThumb].image)); |
||
| 105 | |||
| 106 | // Load next thumbnail |
||
| 107 | vars.current_slide == base.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1; |
||
| 108 | $(vars.next_thumb).show().html($("<img/>").attr("src", base.options.slides[nextThumb].image)); |
||
| 109 | } |
||
| 110 | |||
| 111 | base._start(); // Get things started |
||
| 112 | }; |
||
| 113 | |||
| 114 | |||
| 115 | /* Initialize |
||
| 116 | ----------------------------*/ |
||
| 117 | base._start = function(){ |
||
| 118 | |||
| 119 | // Determine if starting slide random |
||
| 120 | if (base.options.start_slide){ |
||
| 121 | vars.current_slide = base.options.start_slide - 1; |
||
| 122 | }else{ |
||
| 123 | vars.current_slide = Math.floor(Math.random()*base.options.slides.length); // Generate random slide number |
||
| 124 | } |
||
| 125 | |||
| 126 | // If links should open in new window |
||
| 127 | var linkTarget = base.options.new_window ? ' target="_blank"' : ''; |
||
| 128 | |||
| 129 | // Set slideshow quality (Supported only in FF and IE, no Webkit) |
||
| 130 | if (base.options.performance == 3){ |
||
| 131 | base.$el.addClass('speed'); // Faster transitions |
||
| 132 | } else if ((base.options.performance == 1) || (base.options.performance == 2)){ |
||
| 133 | base.$el.addClass('quality'); // Higher image quality |
||
| 134 | } |
||
| 135 | |||
| 136 | // Shuffle slide order if needed |
||
| 137 | if (base.options.random){ |
||
| 138 | arr = base.options.slides; |
||
| 139 | for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); // Fisher-Yates shuffle algorithm (jsfromhell.com/array/shuffle) |
||
|
|
|||
| 140 | base.options.slides = arr; |
||
| 141 | } |
||
| 142 | |||
| 143 | /*-----Load initial set of images-----*/ |
||
| 144 | |||
| 145 | if (base.options.slides.length > 1){ |
||
| 146 | if(base.options.slides.length > 2){ |
||
| 147 | // Set previous image |
||
| 148 | vars.current_slide - 1 < 0 ? loadPrev = base.options.slides.length - 1 : loadPrev = vars.current_slide - 1; // If slide is 1, load last slide as previous |
||
| 149 | var imageLink = (base.options.slides[loadPrev].url) ? "href='" + base.options.slides[loadPrev].url + "'" : ""; |
||
| 150 | |||
| 151 | var imgPrev = $('<img src="'+base.options.slides[loadPrev].image+'"/>'); |
||
| 152 | var slidePrev = base.el+' li:eq('+loadPrev+')'; |
||
| 153 | imgPrev.appendTo(slidePrev).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading prevslide'); |
||
| 154 | |||
| 155 | imgPrev.load(function(){ |
||
| 156 | $(this).data('origWidth', $(this).width()).data('origHeight', $(this).height()); |
||
| 157 | base.resizeNow(); // Resize background image |
||
| 158 | }); // End Load |
||
| 159 | } |
||
| 160 | } else { |
||
| 161 | // Slideshow turned off if there is only one slide |
||
| 162 | base.options.slideshow = 0; |
||
| 163 | } |
||
| 164 | |||
| 165 | // Set current image |
||
| 166 | imageLink = (api.getField('url')) ? "href='" + api.getField('url') + "'" : ""; |
||
| 167 | var img = $('<img src="'+api.getField('image')+'"/>'); |
||
| 168 | |||
| 169 | var slideCurrent= base.el+' li:eq('+vars.current_slide+')'; |
||
| 170 | img.appendTo(slideCurrent).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading activeslide'); |
||
| 171 | |||
| 172 | img.load(function(){ |
||
| 173 | base._origDim($(this)); |
||
| 174 | base.resizeNow(); // Resize background image |
||
| 175 | base.launch(); |
||
| 176 | if( typeof theme != 'undefined' && typeof theme._init == "function" ) theme._init(); // Load Theme |
||
| 177 | }); |
||
| 178 | |||
| 179 | if (base.options.slides.length > 1){ |
||
| 180 | // Set next image |
||
| 181 | vars.current_slide == base.options.slides.length - 1 ? loadNext = 0 : loadNext = vars.current_slide + 1; // If slide is last, load first slide as next |
||
| 182 | imageLink = (base.options.slides[loadNext].url) ? "href='" + base.options.slides[loadNext].url + "'" : ""; |
||
| 183 | |||
| 184 | var imgNext = $('<img src="'+base.options.slides[loadNext].image+'"/>'); |
||
| 185 | var slideNext = base.el+' li:eq('+loadNext+')'; |
||
| 186 | imgNext.appendTo(slideNext).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading'); |
||
| 187 | |||
| 188 | imgNext.load(function(){ |
||
| 189 | $(this).data('origWidth', $(this).width()).data('origHeight', $(this).height()); |
||
| 190 | base.resizeNow(); // Resize background image |
||
| 191 | }); // End Load |
||
| 192 | } |
||
| 193 | /*-----End load initial images-----*/ |
||
| 194 | |||
| 195 | // Hide elements to be faded in |
||
| 196 | base.$el.css('visibility','hidden'); |
||
| 197 | $('.load-item').hide(); |
||
| 198 | |||
| 199 | }; |
||
| 200 | |||
| 201 | |||
| 202 | /* Launch Supersized |
||
| 203 | ----------------------------*/ |
||
| 204 | base.launch = function(){ |
||
| 205 | |||
| 206 | base.$el.css('visibility','visible'); |
||
| 207 | $('#supersized-loader').remove(); //Hide loading animation |
||
| 208 | |||
| 209 | // Call theme function for before slide transition |
||
| 210 | if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('next'); |
||
| 211 | $('.load-item').show(); |
||
| 212 | |||
| 213 | // Keyboard Navigation |
||
| 214 | if (base.options.keyboard_nav){ |
||
| 215 | $(document.documentElement).keyup(function (event) { |
||
| 216 | |||
| 217 | if(vars.in_animation) return false; // Abort if currently animating |
||
| 218 | if($(document.activeElement).is("input, textarea")) return false; // Abort if active element is an input or a textarea. |
||
| 219 | |||
| 220 | // Left Arrow or Down Arrow |
||
| 221 | if ((event.keyCode == 37) || (event.keyCode == 40)) { |
||
| 222 | clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup |
||
| 223 | base.prevSlide(); |
||
| 224 | |||
| 225 | // Right Arrow or Up Arrow |
||
| 226 | } else if ((event.keyCode == 39) || (event.keyCode == 38)) { |
||
| 227 | clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup |
||
| 228 | base.nextSlide(); |
||
| 229 | |||
| 230 | // Spacebar |
||
| 231 | } else if (event.keyCode == 32 && !vars.hover_pause) { |
||
| 232 | clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup |
||
| 233 | base.playToggle(); |
||
| 234 | } |
||
| 235 | |||
| 236 | }); |
||
| 237 | } |
||
| 238 | |||
| 239 | // Pause when hover on image |
||
| 240 | if (base.options.slideshow && base.options.pause_hover){ |
||
| 241 | $(base.el).hover(function() { |
||
| 242 | if(vars.in_animation) return false; // Abort if currently animating |
||
| 243 | vars.hover_pause = true; // Mark slideshow paused from hover |
||
| 244 | if(!vars.is_paused){ |
||
| 245 | vars.hover_pause = 'resume'; // It needs to resume afterwards |
||
| 246 | base.playToggle(); |
||
| 247 | } |
||
| 248 | }, function() { |
||
| 249 | if(vars.hover_pause == 'resume'){ |
||
| 250 | base.playToggle(); |
||
| 251 | vars.hover_pause = false; |
||
| 252 | } |
||
| 253 | }); |
||
| 254 | } |
||
| 255 | |||
| 256 | if (base.options.slide_links){ |
||
| 257 | // Slide marker clicked |
||
| 258 | $(vars.slide_list+'> li').click(function(){ |
||
| 259 | |||
| 260 | index = $(vars.slide_list+'> li').index(this); |
||
| 261 | targetSlide = index + 1; |
||
| 262 | |||
| 263 | base.goTo(targetSlide); |
||
| 264 | return false; |
||
| 265 | |||
| 266 | }); |
||
| 267 | } |
||
| 268 | |||
| 269 | // Thumb marker clicked |
||
| 270 | if (base.options.thumb_links){ |
||
| 271 | $(vars.thumb_list+'> li').click(function(){ |
||
| 272 | |||
| 273 | index = $(vars.thumb_list+'> li').index(this); |
||
| 274 | targetSlide = index + 1; |
||
| 275 | |||
| 276 | api.goTo(targetSlide); |
||
| 277 | return false; |
||
| 278 | |||
| 279 | }); |
||
| 280 | } |
||
| 281 | |||
| 282 | // Start slideshow if enabled |
||
| 283 | if (base.options.slideshow && base.options.slides.length > 1){ |
||
| 284 | |||
| 285 | // Start slideshow if autoplay enabled |
||
| 286 | if (base.options.autoplay && base.options.slides.length > 1){ |
||
| 287 | vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); // Initiate slide interval |
||
| 288 | }else{ |
||
| 289 | vars.is_paused = true; // Mark as paused |
||
| 290 | } |
||
| 291 | |||
| 292 | //Prevent navigation items from being dragged |
||
| 293 | $('.load-item img').bind("contextmenu mousedown",function(){ |
||
| 294 | return false; |
||
| 295 | }); |
||
| 296 | |||
| 297 | } |
||
| 298 | |||
| 299 | // Adjust image when browser is resized |
||
| 300 | $(window).resize(function(){ |
||
| 301 | base.resizeNow(); |
||
| 302 | }); |
||
| 303 | |||
| 304 | }; |
||
| 305 | |||
| 306 | |||
| 307 | /* Resize Images |
||
| 308 | ----------------------------*/ |
||
| 309 | base.resizeNow = function(){ |
||
| 310 | |||
| 311 | return base.$el.each(function() { |
||
| 312 | // Resize each image seperately |
||
| 313 | $('img', base.el).each(function(){ |
||
| 314 | |||
| 315 | thisSlide = $(this); |
||
| 316 | var ratio = (thisSlide.data('origHeight')/thisSlide.data('origWidth')).toFixed(2); // Define image ratio |
||
| 317 | |||
| 318 | // Gather browser size |
||
| 319 | var browserwidth = base.$el.width(), |
||
| 320 | browserheight = base.$el.height(), |
||
| 321 | offset; |
||
| 322 | |||
| 323 | /*-----Resize Image-----*/ |
||
| 324 | if (base.options.fit_always){ // Fit always is enabled |
||
| 325 | if ((browserheight/browserwidth) > ratio){ |
||
| 326 | resizeWidth(); |
||
| 327 | } else { |
||
| 328 | resizeHeight(); |
||
| 329 | } |
||
| 330 | }else{ // Normal Resize |
||
| 331 | if ((browserheight <= base.options.min_height) && (browserwidth <= base.options.min_width)){ // If window smaller than minimum width and height |
||
| 332 | |||
| 333 | if ((browserheight/browserwidth) > ratio){ |
||
| 334 | base.options.fit_landscape && ratio < 1 ? resizeWidth(true) : resizeHeight(true); // If landscapes are set to fit |
||
| 335 | } else { |
||
| 336 | base.options.fit_portrait && ratio >= 1 ? resizeHeight(true) : resizeWidth(true); // If portraits are set to fit |
||
| 337 | } |
||
| 338 | |||
| 339 | } else if (browserwidth <= base.options.min_width){ // If window only smaller than minimum width |
||
| 340 | |||
| 341 | if ((browserheight/browserwidth) > ratio){ |
||
| 342 | base.options.fit_landscape && ratio < 1 ? resizeWidth(true) : resizeHeight(); // If landscapes are set to fit |
||
| 343 | } else { |
||
| 344 | base.options.fit_portrait && ratio >= 1 ? resizeHeight() : resizeWidth(true); // If portraits are set to fit |
||
| 345 | } |
||
| 346 | |||
| 347 | } else if (browserheight <= base.options.min_height){ // If window only smaller than minimum height |
||
| 348 | |||
| 349 | if ((browserheight/browserwidth) > ratio){ |
||
| 350 | base.options.fit_landscape && ratio < 1 ? resizeWidth() : resizeHeight(true); // If landscapes are set to fit |
||
| 351 | } else { |
||
| 352 | base.options.fit_portrait && ratio >= 1 ? resizeHeight(true) : resizeWidth(); // If portraits are set to fit |
||
| 353 | } |
||
| 354 | |||
| 355 | } else { // If larger than minimums |
||
| 356 | |||
| 357 | if ((browserheight/browserwidth) > ratio){ |
||
| 358 | base.options.fit_landscape && ratio < 1 ? resizeWidth() : resizeHeight(); // If landscapes are set to fit |
||
| 359 | } else { |
||
| 360 | base.options.fit_portrait && ratio >= 1 ? resizeHeight() : resizeWidth(); // If portraits are set to fit |
||
| 361 | } |
||
| 362 | |||
| 363 | } |
||
| 364 | } |
||
| 365 | /*-----End Image Resize-----*/ |
||
| 366 | |||
| 367 | |||
| 368 | /*-----Resize Functions-----*/ |
||
| 369 | |||
| 370 | function resizeWidth(minimum){ |
||
| 371 | if (minimum){ // If minimum height needs to be considered |
||
| 372 | if(thisSlide.width() < browserwidth || thisSlide.width() < base.options.min_width ){ |
||
| 373 | if (thisSlide.width() * ratio >= base.options.min_height){ |
||
| 374 | thisSlide.width(base.options.min_width); |
||
| 375 | thisSlide.height(thisSlide.width() * ratio); |
||
| 376 | }else{ |
||
| 377 | resizeHeight(); |
||
| 378 | } |
||
| 379 | } |
||
| 380 | }else{ |
||
| 381 | if (base.options.min_height >= browserheight && !base.options.fit_landscape){ // If minimum height needs to be considered |
||
| 382 | if (browserwidth * ratio >= base.options.min_height || (browserwidth * ratio >= base.options.min_height && ratio <= 1)){ // If resizing would push below minimum height or image is a landscape |
||
| 383 | thisSlide.width(browserwidth); |
||
| 384 | thisSlide.height(browserwidth * ratio); |
||
| 385 | } else if (ratio > 1){ // Else the image is portrait |
||
| 386 | thisSlide.height(base.options.min_height); |
||
| 387 | thisSlide.width(thisSlide.height() / ratio); |
||
| 388 | } else if (thisSlide.width() < browserwidth) { |
||
| 389 | thisSlide.width(browserwidth); |
||
| 390 | thisSlide.height(thisSlide.width() * ratio); |
||
| 391 | } |
||
| 392 | }else{ // Otherwise, resize as normal |
||
| 393 | thisSlide.width(browserwidth); |
||
| 394 | thisSlide.height(browserwidth * ratio); |
||
| 395 | } |
||
| 396 | } |
||
| 397 | }; |
||
| 398 | |||
| 399 | function resizeHeight(minimum){ |
||
| 400 | if (minimum){ // If minimum height needs to be considered |
||
| 401 | if(thisSlide.height() < browserheight){ |
||
| 402 | if (thisSlide.height() / ratio >= base.options.min_width){ |
||
| 403 | thisSlide.height(base.options.min_height); |
||
| 404 | thisSlide.width(thisSlide.height() / ratio); |
||
| 405 | }else{ |
||
| 406 | resizeWidth(true); |
||
| 407 | } |
||
| 408 | } |
||
| 409 | }else{ // Otherwise, resized as normal |
||
| 410 | if (base.options.min_width >= browserwidth){ // If minimum width needs to be considered |
||
| 411 | if (browserheight / ratio >= base.options.min_width || ratio > 1){ // If resizing would push below minimum width or image is a portrait |
||
| 412 | thisSlide.height(browserheight); |
||
| 413 | thisSlide.width(browserheight / ratio); |
||
| 414 | } else if (ratio <= 1){ // Else the image is landscape |
||
| 415 | thisSlide.width(base.options.min_width); |
||
| 416 | thisSlide.height(thisSlide.width() * ratio); |
||
| 417 | } |
||
| 418 | }else{ // Otherwise, resize as normal |
||
| 419 | thisSlide.height(browserheight); |
||
| 420 | thisSlide.width(browserheight / ratio); |
||
| 421 | } |
||
| 422 | } |
||
| 423 | }; |
||
| 424 | |||
| 425 | /*-----End Resize Functions-----*/ |
||
| 426 | |||
| 427 | if (thisSlide.parents('li').hasClass('image-loading')){ |
||
| 428 | $('.image-loading').removeClass('image-loading'); |
||
| 429 | } |
||
| 430 | |||
| 431 | // Horizontally Center |
||
| 432 | if (base.options.horizontal_center){ |
||
| 433 | $(this).css('left', (browserwidth - $(this).width())/2); |
||
| 434 | } |
||
| 435 | |||
| 436 | // Vertically Center |
||
| 437 | if (base.options.vertical_center){ |
||
| 438 | $(this).css('top', (browserheight - $(this).height())/2); |
||
| 439 | } |
||
| 440 | |||
| 441 | }); |
||
| 442 | |||
| 443 | // Basic image drag and right click protection |
||
| 444 | if (base.options.image_protect){ |
||
| 445 | |||
| 446 | $('img', base.el).bind("contextmenu mousedown",function(){ |
||
| 447 | return false; |
||
| 448 | }); |
||
| 449 | |||
| 450 | } |
||
| 451 | |||
| 452 | return false; |
||
| 453 | |||
| 454 | }); |
||
| 455 | |||
| 456 | }; |
||
| 457 | |||
| 458 | |||
| 459 | /* Next Slide |
||
| 460 | ----------------------------*/ |
||
| 461 | View Code Duplication | base.nextSlide = function(){ |
|
| 462 | |||
| 463 | if(vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating |
||
| 464 | else vars.in_animation = true; // Otherwise set animation marker |
||
| 465 | |||
| 466 | clearInterval(vars.slideshow_interval); // Stop slideshow |
||
| 467 | |||
| 468 | var slides = base.options.slides, // Pull in slides array |
||
| 469 | liveslide = base.$el.find('.activeslide'); // Find active slide |
||
| 470 | $('.prevslide').removeClass('prevslide'); |
||
| 471 | liveslide.removeClass('activeslide').addClass('prevslide'); // Remove active class & update previous slide |
||
| 472 | |||
| 473 | // Get the slide number of new slide |
||
| 474 | vars.current_slide + 1 == base.options.slides.length ? vars.current_slide = 0 : vars.current_slide++; |
||
| 475 | |||
| 476 | var nextslide = $(base.el+' li:eq('+vars.current_slide+')'), |
||
| 477 | prevslide = base.$el.find('.prevslide'); |
||
| 478 | |||
| 479 | // If hybrid mode is on drop quality for transition |
||
| 480 | if (base.options.performance == 1) base.$el.removeClass('quality').addClass('speed'); |
||
| 481 | |||
| 482 | |||
| 483 | /*-----Load Image-----*/ |
||
| 484 | |||
| 485 | loadSlide = false; |
||
| 486 | |||
| 487 | vars.current_slide == base.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1; // Determine next slide |
||
| 488 | |||
| 489 | var targetList = base.el+' li:eq('+loadSlide+')'; |
||
| 490 | if (!$(targetList).html()){ |
||
| 491 | |||
| 492 | // If links should open in new window |
||
| 493 | var linkTarget = base.options.new_window ? ' target="_blank"' : ''; |
||
| 494 | |||
| 495 | imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it |
||
| 496 | var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); |
||
| 497 | |||
| 498 | img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); |
||
| 499 | |||
| 500 | img.load(function(){ |
||
| 501 | base._origDim($(this)); |
||
| 502 | base.resizeNow(); |
||
| 503 | }); // End Load |
||
| 504 | }; |
||
| 505 | |||
| 506 | // Update thumbnails (if enabled) |
||
| 507 | if (base.options.thumbnail_navigation == 1){ |
||
| 508 | |||
| 509 | // Load previous thumbnail |
||
| 510 | vars.current_slide - 1 < 0 ? prevThumb = base.options.slides.length - 1 : prevThumb = vars.current_slide - 1; |
||
| 511 | $(vars.prev_thumb).html($("<img/>").attr("src", base.options.slides[prevThumb].image)); |
||
| 512 | |||
| 513 | // Load next thumbnail |
||
| 514 | nextThumb = loadSlide; |
||
| 515 | $(vars.next_thumb).html($("<img/>").attr("src", base.options.slides[nextThumb].image)); |
||
| 516 | |||
| 517 | } |
||
| 518 | |||
| 519 | |||
| 520 | |||
| 521 | /*-----End Load Image-----*/ |
||
| 522 | |||
| 523 | |||
| 524 | // Call theme function for before slide transition |
||
| 525 | if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('next'); |
||
| 526 | |||
| 527 | //Update slide markers |
||
| 528 | if (base.options.slide_links){ |
||
| 529 | $('.current-slide').removeClass('current-slide'); |
||
| 530 | $(vars.slide_list +'> li' ).eq(vars.current_slide).addClass('current-slide'); |
||
| 531 | } |
||
| 532 | |||
| 533 | nextslide.css('visibility','hidden').addClass('activeslide'); // Update active slide |
||
| 534 | |||
| 535 | switch(base.options.transition){ |
||
| 536 | case 0: case 'none': // No transition |
||
| 537 | nextslide.css('visibility','visible'); vars.in_animation = false; base.afterAnimation(); |
||
| 538 | break; |
||
| 539 | case 1: case 'fade': // Fade |
||
| 540 | nextslide.css({opacity : 0, 'visibility': 'visible'}).animate({opacity : 1, avoidTransforms : false}, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 541 | break; |
||
| 542 | case 2: case 'slideTop': // Slide Top |
||
| 543 | nextslide.css({top : -base.$el.height(), 'visibility': 'visible'}).animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 544 | break; |
||
| 545 | case 3: case 'slideRight': // Slide Right |
||
| 546 | nextslide.css({left : base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 547 | break; |
||
| 548 | case 4: case 'slideBottom': // Slide Bottom |
||
| 549 | nextslide.css({top : base.$el.height(), 'visibility': 'visible'}).animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 550 | break; |
||
| 551 | case 5: case 'slideLeft': // Slide Left |
||
| 552 | nextslide.css({left : -base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 553 | break; |
||
| 554 | case 6: case 'carouselRight': // Carousel Right |
||
| 555 | nextslide.css({left : base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 556 | liveslide.animate({ left: -base.$el.width(), avoidTransforms : false }, base.options.transition_speed ); |
||
| 557 | break; |
||
| 558 | case 7: case 'carouselLeft': // Carousel Left |
||
| 559 | nextslide.css({left : -base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 560 | liveslide.animate({ left: base.$el.width(), avoidTransforms : false }, base.options.transition_speed ); |
||
| 561 | break; |
||
| 562 | } |
||
| 563 | return false; |
||
| 564 | }; |
||
| 565 | |||
| 566 | |||
| 567 | /* Previous Slide |
||
| 568 | ----------------------------*/ |
||
| 569 | View Code Duplication | base.prevSlide = function(){ |
|
| 570 | |||
| 571 | if(vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating |
||
| 572 | else vars.in_animation = true; // Otherwise set animation marker |
||
| 573 | |||
| 574 | clearInterval(vars.slideshow_interval); // Stop slideshow |
||
| 575 | |||
| 576 | var slides = base.options.slides, // Pull in slides array |
||
| 577 | liveslide = base.$el.find('.activeslide'); // Find active slide |
||
| 578 | $('.prevslide').removeClass('prevslide'); |
||
| 579 | liveslide.removeClass('activeslide').addClass('prevslide'); // Remove active class & update previous slide |
||
| 580 | |||
| 581 | // Get current slide number |
||
| 582 | vars.current_slide == 0 ? vars.current_slide = base.options.slides.length - 1 : vars.current_slide-- ; |
||
| 583 | |||
| 584 | var nextslide = $(base.el+' li:eq('+vars.current_slide+')'), |
||
| 585 | prevslide = base.$el.find('.prevslide'); |
||
| 586 | |||
| 587 | // If hybrid mode is on drop quality for transition |
||
| 588 | if (base.options.performance == 1) base.$el.removeClass('quality').addClass('speed'); |
||
| 589 | |||
| 590 | |||
| 591 | /*-----Load Image-----*/ |
||
| 592 | |||
| 593 | loadSlide = vars.current_slide; |
||
| 594 | |||
| 595 | var targetList = base.el+' li:eq('+loadSlide+')'; |
||
| 596 | if (!$(targetList).html()){ |
||
| 597 | // If links should open in new window |
||
| 598 | var linkTarget = base.options.new_window ? ' target="_blank"' : ''; |
||
| 599 | imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it |
||
| 600 | var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); |
||
| 601 | |||
| 602 | img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); |
||
| 603 | |||
| 604 | img.load(function(){ |
||
| 605 | base._origDim($(this)); |
||
| 606 | base.resizeNow(); |
||
| 607 | }); // End Load |
||
| 608 | }; |
||
| 609 | |||
| 610 | // Update thumbnails (if enabled) |
||
| 611 | if (base.options.thumbnail_navigation == 1){ |
||
| 612 | |||
| 613 | // Load previous thumbnail |
||
| 614 | //prevThumb = loadSlide; |
||
| 615 | loadSlide == 0 ? prevThumb = base.options.slides.length - 1 : prevThumb = loadSlide - 1; |
||
| 616 | $(vars.prev_thumb).html($("<img/>").attr("src", base.options.slides[prevThumb].image)); |
||
| 617 | |||
| 618 | // Load next thumbnail |
||
| 619 | vars.current_slide == base.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1; |
||
| 620 | $(vars.next_thumb).html($("<img/>").attr("src", base.options.slides[nextThumb].image)); |
||
| 621 | } |
||
| 622 | |||
| 623 | /*-----End Load Image-----*/ |
||
| 624 | |||
| 625 | |||
| 626 | // Call theme function for before slide transition |
||
| 627 | if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('prev'); |
||
| 628 | |||
| 629 | //Update slide markers |
||
| 630 | if (base.options.slide_links){ |
||
| 631 | $('.current-slide').removeClass('current-slide'); |
||
| 632 | $(vars.slide_list +'> li' ).eq(vars.current_slide).addClass('current-slide'); |
||
| 633 | } |
||
| 634 | |||
| 635 | nextslide.css('visibility','hidden').addClass('activeslide'); // Update active slide |
||
| 636 | |||
| 637 | switch(base.options.transition){ |
||
| 638 | case 0: case 'none': // No transition |
||
| 639 | nextslide.css('visibility','visible'); vars.in_animation = false; base.afterAnimation(); |
||
| 640 | break; |
||
| 641 | case 1: case 'fade': // Fade |
||
| 642 | nextslide.css({opacity : 0, 'visibility': 'visible'}).animate({opacity : 1, avoidTransforms : false}, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 643 | break; |
||
| 644 | case 2: case 'slideTop': // Slide Top (reverse) |
||
| 645 | nextslide.css({top : base.$el.height(), 'visibility': 'visible'}).animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 646 | break; |
||
| 647 | case 3: case 'slideRight': // Slide Right (reverse) |
||
| 648 | nextslide.css({left : -base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 649 | break; |
||
| 650 | case 4: case 'slideBottom': // Slide Bottom (reverse) |
||
| 651 | nextslide.css({top : -base.$el.height(), 'visibility': 'visible'}).animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 652 | break; |
||
| 653 | case 5: case 'slideLeft': // Slide Left (reverse) |
||
| 654 | nextslide.css({left : base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 655 | break; |
||
| 656 | case 6: case 'carouselRight': // Carousel Right (reverse) |
||
| 657 | nextslide.css({left : -base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 658 | liveslide.css({left : 0}).animate({ left: base.$el.width(), avoidTransforms : false}, base.options.transition_speed ); |
||
| 659 | break; |
||
| 660 | case 7: case 'carouselLeft': // Carousel Left (reverse) |
||
| 661 | nextslide.css({left : base.$el.width(), 'visibility': 'visible'}).animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); }); |
||
| 662 | liveslide.css({left : 0}).animate({ left: -base.$el.width(), avoidTransforms : false }, base.options.transition_speed ); |
||
| 663 | break; |
||
| 664 | } |
||
| 665 | return false; |
||
| 666 | }; |
||
| 667 | |||
| 668 | |||
| 669 | /* Play/Pause Toggle |
||
| 670 | ----------------------------*/ |
||
| 671 | base.playToggle = function(){ |
||
| 672 | |||
| 673 | if (vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating |
||
| 674 | |||
| 675 | if (vars.is_paused){ |
||
| 676 | |||
| 677 | vars.is_paused = false; |
||
| 678 | |||
| 679 | // Call theme function for play |
||
| 680 | if( typeof theme != 'undefined' && typeof theme.playToggle == "function" ) theme.playToggle('play'); |
||
| 681 | |||
| 682 | // Resume slideshow |
||
| 683 | vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); |
||
| 684 | |||
| 685 | }else{ |
||
| 686 | |||
| 687 | vars.is_paused = true; |
||
| 688 | |||
| 689 | // Call theme function for pause |
||
| 690 | if( typeof theme != 'undefined' && typeof theme.playToggle == "function" ) theme.playToggle('pause'); |
||
| 691 | |||
| 692 | // Stop slideshow |
||
| 693 | clearInterval(vars.slideshow_interval); |
||
| 694 | |||
| 695 | } |
||
| 696 | |||
| 697 | return false; |
||
| 698 | |||
| 699 | }; |
||
| 700 | |||
| 701 | |||
| 702 | /* Go to specific slide |
||
| 703 | ----------------------------*/ |
||
| 704 | base.goTo = function(targetSlide){ |
||
| 705 | if (vars.in_animation || !api.options.slideshow) return false; // Abort if currently animating |
||
| 706 | |||
| 707 | var totalSlides = base.options.slides.length; |
||
| 708 | |||
| 709 | // If target outside range |
||
| 710 | if(targetSlide < 0){ |
||
| 711 | targetSlide = totalSlides; |
||
| 712 | }else if(targetSlide > totalSlides){ |
||
| 713 | targetSlide = 1; |
||
| 714 | } |
||
| 715 | targetSlide = totalSlides - targetSlide + 1; |
||
| 716 | |||
| 717 | clearInterval(vars.slideshow_interval); // Stop slideshow, prevent buildup |
||
| 718 | |||
| 719 | // Call theme function for goTo trigger |
||
| 720 | if (typeof theme != 'undefined' && typeof theme.goTo == "function" ) theme.goTo(); |
||
| 721 | |||
| 722 | if (vars.current_slide == totalSlides - targetSlide){ |
||
| 723 | if(!(vars.is_paused)){ |
||
| 724 | vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); |
||
| 725 | } |
||
| 726 | return false; |
||
| 727 | } |
||
| 728 | |||
| 729 | // If ahead of current position |
||
| 730 | if(totalSlides - targetSlide > vars.current_slide ){ |
||
| 731 | |||
| 732 | // Adjust for new next slide |
||
| 733 | vars.current_slide = totalSlides-targetSlide-1; |
||
| 734 | vars.update_images = 'next'; |
||
| 735 | base._placeSlide(vars.update_images); |
||
| 736 | |||
| 737 | //Otherwise it's before current position |
||
| 738 | }else if(totalSlides - targetSlide < vars.current_slide){ |
||
| 739 | |||
| 740 | // Adjust for new prev slide |
||
| 741 | vars.current_slide = totalSlides-targetSlide+1; |
||
| 742 | vars.update_images = 'prev'; |
||
| 743 | base._placeSlide(vars.update_images); |
||
| 744 | |||
| 745 | } |
||
| 746 | |||
| 747 | // set active markers |
||
| 748 | if (base.options.slide_links){ |
||
| 749 | $(vars.slide_list +'> .current-slide').removeClass('current-slide'); |
||
| 750 | $(vars.slide_list +'> li').eq((totalSlides-targetSlide)).addClass('current-slide'); |
||
| 751 | } |
||
| 752 | |||
| 753 | if (base.options.thumb_links){ |
||
| 754 | $(vars.thumb_list +'> .current-thumb').removeClass('current-thumb'); |
||
| 755 | $(vars.thumb_list +'> li').eq((totalSlides-targetSlide)).addClass('current-thumb'); |
||
| 756 | } |
||
| 757 | |||
| 758 | }; |
||
| 759 | |||
| 760 | |||
| 761 | /* Place Slide |
||
| 762 | ----------------------------*/ |
||
| 763 | base._placeSlide = function(place){ |
||
| 764 | |||
| 765 | // If links should open in new window |
||
| 766 | var linkTarget = base.options.new_window ? ' target="_blank"' : ''; |
||
| 767 | |||
| 768 | loadSlide = false; |
||
| 769 | |||
| 770 | if (place == 'next'){ |
||
| 771 | |||
| 772 | vars.current_slide == base.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1; // Determine next slide |
||
| 773 | |||
| 774 | var targetList = base.el+' li:eq('+loadSlide+')'; |
||
| 775 | |||
| 776 | if (!$(targetList).html()){ |
||
| 777 | // If links should open in new window |
||
| 778 | var linkTarget = base.options.new_window ? ' target="_blank"' : ''; |
||
| 779 | |||
| 780 | imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it |
||
| 781 | var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); |
||
| 782 | |||
| 783 | img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); |
||
| 784 | |||
| 785 | img.load(function(){ |
||
| 786 | base._origDim($(this)); |
||
| 787 | base.resizeNow(); |
||
| 788 | }); // End Load |
||
| 789 | }; |
||
| 790 | |||
| 791 | base.nextSlide(); |
||
| 792 | |||
| 793 | }else if (place == 'prev'){ |
||
| 794 | |||
| 795 | vars.current_slide - 1 < 0 ? loadSlide = base.options.slides.length - 1 : loadSlide = vars.current_slide - 1; // Determine next slide |
||
| 796 | |||
| 797 | var targetList = base.el+' li:eq('+loadSlide+')'; |
||
| 798 | |||
| 799 | if (!$(targetList).html()){ |
||
| 800 | // If links should open in new window |
||
| 801 | var linkTarget = base.options.new_window ? ' target="_blank"' : ''; |
||
| 802 | |||
| 803 | imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : ""; // If link exists, build it |
||
| 804 | var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); |
||
| 805 | |||
| 806 | img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden'); |
||
| 807 | |||
| 808 | img.load(function(){ |
||
| 809 | base._origDim($(this)); |
||
| 810 | base.resizeNow(); |
||
| 811 | }); // End Load |
||
| 812 | }; |
||
| 813 | base.prevSlide(); |
||
| 814 | } |
||
| 815 | |||
| 816 | }; |
||
| 817 | |||
| 818 | |||
| 819 | /* Get Original Dimensions |
||
| 820 | ----------------------------*/ |
||
| 821 | base._origDim = function(targetSlide){ |
||
| 822 | targetSlide.data('origWidth', targetSlide.width()).data('origHeight', targetSlide.height()); |
||
| 823 | }; |
||
| 824 | |||
| 825 | |||
| 826 | /* After Slide Animation |
||
| 827 | ----------------------------*/ |
||
| 828 | base.afterAnimation = function(){ |
||
| 829 | |||
| 830 | // If hybrid mode is on swap back to higher image quality |
||
| 831 | if (base.options.performance == 1){ |
||
| 832 | base.$el.removeClass('speed').addClass('quality'); |
||
| 833 | } |
||
| 834 | |||
| 835 | // Update previous slide |
||
| 836 | if (vars.update_images){ |
||
| 837 | vars.current_slide - 1 < 0 ? setPrev = base.options.slides.length - 1 : setPrev = vars.current_slide-1; |
||
| 838 | vars.update_images = false; |
||
| 839 | $('.prevslide').removeClass('prevslide'); |
||
| 840 | $(base.el+' li:eq('+setPrev+')').addClass('prevslide'); |
||
| 841 | } |
||
| 842 | |||
| 843 | vars.in_animation = false; |
||
| 844 | |||
| 845 | // Resume slideshow |
||
| 846 | if (!vars.is_paused && base.options.slideshow){ |
||
| 847 | vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval); |
||
| 848 | if (base.options.stop_loop && vars.current_slide == base.options.slides.length - 1 ) base.playToggle(); |
||
| 849 | } |
||
| 850 | |||
| 851 | // Call theme function for after slide transition |
||
| 852 | if (typeof theme != 'undefined' && typeof theme.afterAnimation == "function" ) theme.afterAnimation(); |
||
| 853 | |||
| 854 | return false; |
||
| 855 | |||
| 856 | }; |
||
| 857 | |||
| 858 | base.getField = function(field){ |
||
| 859 | return base.options.slides[vars.current_slide][field]; |
||
| 860 | }; |
||
| 861 | |||
| 862 | // Make it go! |
||
| 863 | base.init(); |
||
| 864 | }; |
||
| 865 | |||
| 866 | |||
| 867 | /* Global Variables |
||
| 868 | ----------------------------*/ |
||
| 869 | $.supersized.vars = { |
||
| 870 | |||
| 871 | // Elements |
||
| 872 | thumb_tray : '#thumb-tray', // Thumbnail tray |
||
| 873 | thumb_list : '#thumb-list', // Thumbnail list |
||
| 874 | slide_list : '#slide-list', // Slide link list |
||
| 875 | |||
| 876 | // Internal variables |
||
| 877 | current_slide : 0, // Current slide number |
||
| 878 | in_animation : false, // Prevents animations from stacking |
||
| 879 | is_paused : false, // Tracks paused on/off |
||
| 880 | hover_pause : false, // If slideshow is paused from hover |
||
| 881 | slideshow_interval : false, // Stores slideshow timer |
||
| 882 | update_images : false, // Trigger to update images after slide jump |
||
| 883 | options : {} // Stores assembled options list |
||
| 884 | |||
| 885 | }; |
||
| 886 | |||
| 887 | |||
| 888 | /* Default Options |
||
| 889 | ----------------------------*/ |
||
| 890 | $.supersized.defaultOptions = { |
||
| 891 | |||
| 892 | // Functionality |
||
| 893 | slideshow : 1, // Slideshow on/off |
||
| 894 | autoplay : 1, // Slideshow starts playing automatically |
||
| 895 | start_slide : 1, // Start slide (0 is random) |
||
| 896 | stop_loop : 0, // Stops slideshow on last slide |
||
| 897 | random : 0, // Randomize slide order (Ignores start slide) |
||
| 898 | slide_interval : 5000, // Length between transitions |
||
| 899 | transition : 1, // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left |
||
| 900 | transition_speed : 750, // Speed of transition |
||
| 901 | new_window : 1, // Image links open in new window/tab |
||
| 902 | pause_hover : 0, // Pause slideshow on hover |
||
| 903 | keyboard_nav : 1, // Keyboard navigation on/off |
||
| 904 | performance : 1, // 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit) |
||
| 905 | image_protect : 1, // Disables image dragging and right click with Javascript |
||
| 906 | |||
| 907 | // Size & Position |
||
| 908 | fit_always : 0, // Image will never exceed browser width or height (Ignores min. dimensions) |
||
| 909 | fit_landscape : 0, // Landscape images will not exceed browser width |
||
| 910 | fit_portrait : 1, // Portrait images will not exceed browser height |
||
| 911 | min_width : 0, // Min width allowed (in pixels) |
||
| 912 | min_height : 0, // Min height allowed (in pixels) |
||
| 913 | horizontal_center : 1, // Horizontally center background |
||
| 914 | vertical_center : 1, // Vertically center background |
||
| 915 | |||
| 916 | |||
| 917 | // Components |
||
| 918 | slide_links : 1, // Individual links for each slide (Options: false, 'num', 'name', 'blank') |
||
| 919 | thumb_links : 1, // Individual thumb links for each slide |
||
| 920 | thumbnail_navigation : 0 // Thumbnail navigation |
||
| 921 | |||
| 922 | }; |
||
| 923 | |||
| 924 | $.fn.supersized = function(options){ |
||
| 925 | return this.each(function(){ |
||
| 926 | (new $.supersized(options)); |
||
| 927 | }); |
||
| 928 | }; |
||
| 929 | |||
| 930 | })(jQuery); |
||
| 931 | |||
| 932 |