/** * Coin Slider - Unique jQuery Image Slider * @version: 1.0 - (2010/04/04) * @requires jQuery v1.2.2 or later * @author Ivan Lazarevic * Examples and documentation at: http://workshop.rs/projects/coin-slider/ * Licensed under MIT licence: * http://www.opensource.org/licenses/mit-license.php **/ /** * Coin Slider for XpressEngine - Unique jQuery Image Slider, XE Optimized * @version: 1.1 - (2010/11/27) * @requires jQuery v1.2.2 or later, XpressEngine * @author Choi Junho(ÃÖÁØÈ£) * @website http://epmakes.com * Licensed under MIT licence: * http://www.opensource.org/licenses/mit-license.php **/ (function(jQuery) { var params = new Array; var order = new Array; var images = new Array; var links = new Array; var linksTarget = new Array; var titles = new Array; var interval = new Array; var imagePos = new Array; var appInterval = new Array; var squarePos = new Array; var reverse = new Array; jQuery.fn.coinslider= jQuery.fn.CoinSlider = function(options){ init = function(el){ order[el.id] = new Array(); // order of square appereance images[el.id] = new Array(); links[el.id] = new Array(); linksTarget[el.id] = new Array(); titles[el.id] = new Array(); imagePos[el.id] = 0; squarePos[el.id] = 0; reverse[el.id] = 1; params[el.id] = jQuery.extend({}, jQuery.fn.coinslider.defaults, options); // create images, links and titles arrays jQuery.each(jQuery('#'+el.id+' img'), function(i,item){ images[el.id][i] = jQuery(item).attr('src'); links[el.id][i] = jQuery(item).parent().is('a') ? jQuery(item).parent().attr('href') : ''; linksTarget[el.id][i] = jQuery(item).parent().is('a') ? jQuery(item).parent().attr('target') : ''; titles[el.id][i] = jQuery(item).next().is('span') ? jQuery(item).next().html() : ''; jQuery(item).hide(); jQuery(item).next().hide(); }); // set panel jQuery(el).css({ 'background-image':'url('+images[el.id][0]+')', 'width': params[el.id].width, 'height': params[el.id].height, 'position': 'relative', 'background-position': 'top left' }).wrap("
"); // create title bar if (params[el.id].uptitle == true) jQuery('#'+el.id).append(""); else jQuery('#'+el.id).append(""); jQuery.setFields(el); if(params[el.id].navigation) jQuery.setNavigation(el); if(params[el.id].imagelist) jQuery.setImagelist(el); jQuery.transition(el,0); jQuery.transitionCall(el); } // squares positions jQuery.setFields = function(el){ tWidth = sWidth = parseInt(params[el.id].width/params[el.id].spw); tHeight = sHeight = parseInt(params[el.id].height/params[el.id].sph); counter = sLeft = sTop = 0; tgapx = gapx = params[el.id].width - params[el.id].spw*sWidth; tgapy = gapy = params[el.id].height - params[el.id].sph*sHeight; for(i=1;i <= params[el.id].sph;i++){ gapx = tgapx; if(gapy > 0){ gapy--; sHeight = tHeight+1; } else { sHeight = tHeight; } for(j=1; j <= params[el.id].spw; j++){ if(gapx > 0){ gapx--; sWidth = tWidth+1; } else { sWidth = tWidth; } order[el.id][counter] = i+''+j; counter++; if(params[el.id].links) jQuery('#'+el.id).append(""); else jQuery('#'+el.id).append(""); // positioning squares jQuery("#cs-"+el.id+i+j).css({ 'background-position': -sLeft +'px '+(-sTop+'px'), 'left' : sLeft , 'top': sTop }); sLeft += sWidth; } sTop += sHeight; sLeft = 0; } jQuery('.cs-'+el.id).mouseover(function(){ jQuery('#cs-navigation-'+el.id).show(); }); jQuery('.cs-'+el.id).mouseout(function(){ jQuery('#cs-navigation-'+el.id).hide(); }); jQuery('#cs-title-'+el.id).mouseover(function(){ jQuery('#cs-navigation-'+el.id).show(); }); jQuery('#cs-title-'+el.id).mouseout(function(){ jQuery('#cs-navigation-'+el.id).hide(); }); if(params[el.id].hoverPause){ jQuery('.cs-'+el.id).mouseover(function(){ params[el.id].pause = true; }); jQuery('.cs-'+el.id).mouseout(function(){ params[el.id].pause = false; }); jQuery('#cs-title-'+el.id).mouseover(function(){ params[el.id].pause = true; }); jQuery('#cs-title-'+el.id).mouseout(function(){ params[el.id].pause = false; }); } }; jQuery.transitionCall = function(el){ clearInterval(interval[el.id]); delay = params[el.id].delay + params[el.id].spw*params[el.id].sph*params[el.id].sDelay; interval[el.id] = setInterval(function() { jQuery.transition(el) }, delay); } // transitions jQuery.transition = function(el,direction){ if(params[el.id].pause == true) return; jQuery.effect(el); squarePos[el.id] = 0; appInterval[el.id] = setInterval(function() { jQuery.appereance(el,order[el.id][squarePos[el.id]]) },params[el.id].sDelay); jQuery(el).css({ 'background-image': 'url('+images[el.id][imagePos[el.id]]+')' }); if(typeof(direction) == "undefined") imagePos[el.id]++; else if(direction == 'prev') imagePos[el.id]--; else imagePos[el.id] = direction; if (imagePos[el.id] == images[el.id].length) { imagePos[el.id] = 0; } if (imagePos[el.id] == -1){ imagePos[el.id] = images[el.id].length-1; } jQuery('.cs-button-'+el.id).removeClass('cs-active'); jQuery('#cs-button-'+el.id+"-"+(imagePos[el.id]+1)).addClass('cs-active'); if(titles[el.id][imagePos[el.id]]){ jQuery('#cs-title-'+el.id).css({ 'opacity' : 0 }).animate({ 'opacity' : params[el.id].opacity }, params[el.id].titleSpeed); jQuery('#cs-title-'+el.id).html(titles[el.id][imagePos[el.id]]); } else { jQuery('#cs-title-'+el.id).css('opacity',0); } }; jQuery.appereance = function(el,sid){ jQuery('.cs-'+el.id).attr('href',links[el.id][imagePos[el.id]]).attr('target',linksTarget[el.id][imagePos[el.id]]); if (squarePos[el.id] == params[el.id].spw*params[el.id].sph) { clearInterval(appInterval[el.id]); return; } jQuery('#cs-'+el.id+sid).css({ opacity: 0, 'background-image': 'url('+images[el.id][imagePos[el.id]]+')' }); jQuery('#cs-'+el.id+sid).animate({ opacity: 1 }, 300); squarePos[el.id]++; }; // navigation jQuery.setNavigation = function(el){ // create prev and next jQuery(el).append(""); jQuery('#cs-navigation-'+el.id).hide(); jQuery('#cs-navigation-'+el.id).append("<"); jQuery('#cs-navigation-'+el.id).append(">"); jQuery('#cs-prev-'+el.id).css({ 'position' : 'absolute', 'top' : params[el.id].height/2 - 15, 'left' : 0, 'z-index' : 1001, 'line-height': '30px', 'opacity' : params[el.id].opacity }).click( function(e){ e.preventDefault(); jQuery.transition(el,'prev'); jQuery.transitionCall(el); }).mouseover( function(){ jQuery.setImagebuttonPrevOver(el); jQuery('#cs-navigation-'+el.id).show(); }).mouseout( function(){ jQuery.setImagebuttonPrevOut(el) }); jQuery('#cs-next-'+el.id).css({ 'position' : 'absolute', 'top' : params[el.id].height/2 - 15, 'right' : 0, 'z-index' : 1001, 'line-height': '30px', 'opacity' : params[el.id].opacity }).click( function(e){ e.preventDefault(); jQuery.transition(el); jQuery.transitionCall(el); }).mouseover( function(){ jQuery.setImagebuttonNextOver(el); jQuery('#cs-navigation-'+el.id).show(); }).mouseout( function(){ jQuery.setImagebuttonNextOut(el) }); jQuery.setImagebuttonPrevOut(el); jQuery.setImagebuttonNextOut(el); jQuery('#cs-navigation-'+el.id+' a').mouseout(function(){ jQuery('#cs-navigation-'+el.id).hide(); params[el.id].pause = false; }); } // cs-prev mouseout jQuery.setImagebuttonPrevOut = function(el){ if (params[el.id].imagebutton) { if (params[el.id].imagebuttontype == 0) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn01/prev.gif)', 'width' : '25px', 'height' : '39px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 1) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn02/prev.gif)', 'width' : '15px', 'height' : '24px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 2) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn03/prev.gif)', 'width' : '34px', 'height' : '73px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 3) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn04/prev.gif)', 'width' : '25px', 'height' : '42px', 'top' : params[el.id].height/2 - 15 }); } jQuery('#cs-span-prev-'+el.id).css({ 'display' : 'none' }); } else { jQuery('#cs-prev-'+el.id).css({ 'background-color' : '#000000', 'color' : '#FFFFFF', 'padding' : '10px' }); } } // cs-next mouseout jQuery.setImagebuttonNextOut = function(el){ if (params[el.id].imagebutton) { if (params[el.id].imagebuttontype == 0) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn01/next.gif)', 'width' : '25px', 'height' : '39px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 1) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn02/next.gif)', 'width' : '15px', 'height' : '24px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 2) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn03/next.gif)', 'width' : '34px', 'height' : '73px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 3) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn04/next.gif)', 'width' : '25px', 'height' : '42px', 'top' : params[el.id].height/2 - 15 }); } jQuery('#cs-span-next-'+el.id).css({ 'display' : 'none' }); } else { jQuery('#cs-next-'+el.id).css({ 'background-color' : '#000000', 'color' : '#FFFFFF', 'padding' : '10px' }); } } // cs-prev mouseover jQuery.setImagebuttonPrevOver = function(el){ if (params[el.id].imagebutton) { if (params[el.id].imagebuttontype == 0) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn01/prev_over.gif)', 'width' : '25px', 'height' : '39px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 1) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn02/prev_over.gif)', 'width' : '15px', 'height' : '24px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 2) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn03/prev_over.gif)', 'width' : '34px', 'height' : '73px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 3) { jQuery('#cs-prev-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn04/prev_over.gif)', 'width' : '25px', 'height' : '42px', 'top' : params[el.id].height/2 - 15 }); } jQuery('#cs-span-prev-'+el.id).css({ 'display' : 'none' }); } else { jQuery('#cs-prev-'+el.id).css({ 'background-color' : '#000000', 'color' : '#FFFFFF', 'padding' : '10px' }); } } // cs-next mouseover jQuery.setImagebuttonNextOver = function(el){ if (params[el.id].imagebutton) { if (params[el.id].imagebuttontype == 0) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn01/next_over.gif)', 'width' : '25px', 'height' : '39px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 1) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn02/next_over.gif)', 'width' : '15px', 'height' : '24px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 2) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn03/next_over.gif)', 'width' : '34px', 'height' : '73px', 'top' : params[el.id].height/2 - 15 }); } else if (params[el.id].imagebuttontype == 3) { jQuery('#cs-next-'+el.id).css({ 'background' : 'url('+params[el.id].skinsrc+'/images/imgbtn04/next_over.gif)', 'width' : '25px', 'height' : '42px', 'top' : params[el.id].height/2 - 15 }); } jQuery('#cs-span-next-'+el.id).css({ 'display' : 'none' }); } else { jQuery('#cs-next-'+el.id).css({ 'background-color' : '#000000', 'color' : '#FFFFFF', 'padding' : '10px' }); } } // imagelist jQuery.setImagelist = function(el){ // image buttons jQuery("").appendTo(jQuery('#coin-slider-'+el.id)); for(k=1;k