(function ( $ ) { //DEFINE NAME ON THE FUNCTION $.fn.mostSlider = function( options ) { // GET THE OPTIONS var settings = $.extend({ // SET DEFAULT // ANIMATION animation: "fade", aniSpeed: 1000, // BACKGROUND CENTERING - only avilable if metrics are set background_center: false, // SPEED autoPlay: true, pauseTime: 3000, // METRICS metrics: { // RATIO width: 0, height: 0 }, // NAVIGATION thumbnails: false, navigation: true, hideArrows: true, // FUNCTION linkable: false, // CONTENT transparancy: false, contentClass: "content", sbsContent: false, contentAniDelay: 300, socialButtons: false, socialUrl: "", twitterID: "" }, options ); /*********************/ /***** VARIABLES *****/ /*********************/ //CACHE THE SLIDER ELEMENT var slider = this; //CACHE THE SLIDERS WIDTH var width = slider.width(); //SLIDER RATION var ratio = settings.metrics.height / settings.metrics.width; //CACHE THE SLIDERs CHILDREN/SLIDES var children = slider.children(); //CACHE THE NUMBER OF CHILDREN/SLIDES var children_number = children.length; //CURRENT SLIDE var current = 1; //SLIDE DIRECTION var direction = "right"; //AUTOPLAY INTERVAL var autoplay; //CURRENTLY SLIDING var sliding = false; //INITIALISED? var initialised = false; /*****************/ /***** INITS *****/ /*****************/ //LET THE SLIDER DIV FIT THE SLIDER-WRAPPER slider.css({"position": "relative","width": "100%","line-height": "0"}); //STYLE THE SLIDES AND SET A ID/INDEX slider.children().each(function(index){ //DIFFERENT ANIMATIONS switch (settings.animation) { //FADE, SLIDE-DOWN default: $(this).css({"width":"100%", "height":"auto", "line-height":"auto", "position":"absolute", "z-index":0, "display":"none", "overflow":"hidden"}).attr("id",index+1); /*****************/ /* SPECIAL CASES */ /*****************/ //IFRAME (NOT FULLY WORKING) if($(this).is("iframe")){ $(this).css({ "width": slider.find("#1").width(), "height": slider.find("#1").height() }); } //SLIDE IS IMAGE $(this).find("> img:only-child").css({ "width":"100%", "height":"auto" }); //SLIDE IS IMAGE IN LINK $(this).find("> a > img:only-child").css({ "width":"100%", "height":"auto" }); // BACKGROUND IMAGES if($(this).find("img.bg").length > 0){ // IF BACKGROUND CENTERING ACTIVE AND METRICS ARE SET (experimental) if(settings.background_center == true && (settings.metrics.width > 0 && settings.metrics.width != '') && (settings.metrics.height > 0 && settings.metrics.height != '')){ $(this).css({ "background-image": 'url(' + $(this).find("img.bg").attr('src') + ')', "background-repeat":"no-repeat", "background-position":"center center", "background-size":"cover", "-webkit-background-size":"cover", "-moz-background-size":"cover", "-o-background-size":"cover", }); $(this).find("img.bg").hide(); } // DEFAULT BG HANDLING else{ $(this).find("img.bg").css({ "width":"100%", "height":"auto" }); } } break; } //SOCIAL BUTTONS if(settings.socialButtons == true){ // INSERT CONTAINER FOR SOCIAL BUTTONS $(this).prepend('
'); var data_social = "none"; if($(this).attr('data-social') != undefined){ data_social = $(this).attr('data-social'); } // FACEBOOK if(data_social.indexOf('facebook') >= 0 && settings.twitterID != ""){ var url = document.URL; var number = parseInt(index) + 1; if(url.indexOf('?') > 0){ url = url + "&slider=" + number; } else{ url = url + "?slider=" + number; } url = url.replace(/\:/g, '%3A').replace(/\//g, '%2F').replace(/\=/g, '%3D').replace(/\?/g, '%3F').replace(/\-/g, '%2D'); //slider.parent().prepend('
'); $(this).find(".social").prepend('
'); } // PINTEREST if(data_social.indexOf('pinterest') >= 0 && settings.socialUrl != "" && $(this).find(".pinterest").length == 1){ // URL OF SITE var url = settings.socialUrl.replace(/:/g,'%3A').replace(/\//g,'%2F'); // IMAGE OBJECT var img = $(this).find(".pinterest"); // ABSOLUTE URL TO IMAGE var src = img.get(0).src.replace(/:/g,'%3A').replace(/\//g,'%2F'); // IMAGE DESCRIPTION var description = img.attr('alt'); if(description == "undefined"){ description = ""; } // BILD LINK FOR PINTEREST $(this).find(".social").prepend('
'); } // TWITTER if(data_social.indexOf('twitter') >= 0 && settings.twitterID != ""){ var url = document.URL; var number = parseInt(index) + 1; if(url.indexOf('?') > 0 && url.search("slider=")>0){ slider_url = url.substr(url.search("slider="), 8) url = url.replace(slider_url,'slider=' + number); } else if(url.indexOf('?') > 0 && url.search("slider=") < 0){ url = url + "&slider=" + number; } else{ url = url + "?slider=" + number; } $(this).find(".social").prepend('
'); } } }); //SET WRAPER FOR SLIDE ANIMATION if(settings.animation == "slide"){ slider.wrapInner('
'); } else{ slider.wrapInner('
'); } // VERY SERIOUS BUSINESS HERE! MAGIC MAGIC MAGIC! THINK TWICE BEFORE TOUCHING // SET SLIDER HEIGHT // IF SET, DO NOTHING, IF NOT SET, SET TO FIRST CHILD this.init = function(){ slider.css("display","block"); if((settings.metrics.width > 0) && (settings.metrics.height > 0)){ if(slider.width() < settings.metrics.width){ var tmp = ratio*slider.width(); slider.find("#slides").css("height",tmp).children().css("height",tmp); } else{ slider.find("#slides").css("height",settings.metrics.height).children().css("height",settings.metrics.height); } } else{ var tmp = slider.find("#slides #1").height(); slider.find("#slides").css("height",tmp).css("height",tmp); } initialised = true; } // RESIZING $(window).resize(function(){ if((settings.metrics.width > 0) && (settings.metrics.height > 0)){ if(slider.width() < settings.metrics.width){ slider.find("#slides").css("height",ratio*slider.width()).children().css("height",ratio*slider.width()); } else{ slider.find("#slides").css("height",settings.metrics.height).children().css("height",settings.metrics.height); } } else{ slider.find("#slides").css("height",slider.find("#slides #1").height()); } }); // SERIOUS BUSINESS ENDING HERE //STYLE THE INNER EFFECT ELEMENTS slider.find(".center").each(function(){ $(this).css("display:","inline-block"); }); slider.find(".fade").each(function(){ $(this).css("display","none"); }); slider.find(".from-top").each(function(){ $(this).css({"opacity":0,"margin-top":0}); }); slider.find(".from-bottom").each(function(){ $(this).css({"opacity":0,"margin-top":0}); }); slider.find(".from-left").each(function(){ $(this).css({"opacity":0,"margin-top":0}); }); slider.find(".from-right").each(function(){ $(this).css({"opacity":0,"margin-top":0}); }); /*******************/ /***** INSERTS *****/ /*******************/ // NAVIGATION if(settings.navigation == true){ //INSERT BULLETS slider.append('
'); for (var i=1;i<=children_number;i++){ if(settings.thumbnails == true){ slider.find("#bullets").append('
'); } else{ slider.find("#bullets").append('
'); } if(i==1){ $('#bullets > #1').addClass("selected"); } } // INSERT ARROWS slider.prepend('