Codesnipp.it Social Code Sharing

Anirudh

Simple image slider plugin using jquery

by Anirudh on Nov 27, 2011

/* Plugin Name: Image Slider; Developed By: Anirudh Prabhu; Developed on: 16th September 2011; Version: 0.3; Description: This is a simple image slider Usage: Give path of image as href attribute of anchor and description or info in alt attribute of anchor */ //Variable Declaration area var number_of_images; var actualindex = number_of_images - 1; var targetelement; var targetclass; var startnow; var insideloop = 0; var currentcounter; var choosenindex; (function($){ $(".slidersindicator .counter").live('click',function() { choosenindex = $(".slidersindicator .counter").index(this); $(".slidersindicator .counter").each(function(){ if($(this).hasClass("isactive")) { $(this).removeClass("isactive"); $(".slidersindicator .counter").eq(choosenindex).addClass("isactive"); } }) window.clearTimeout(startnow); //alert(choosenindex); $(elementtoiterate).each(function(i,e){ if($(this).hasClass("active")) { $(this).fadeOut("slow",function(){$(elementtoiterate).eq(choosenindex).fadeIn("fast").addClass("active"); $(this).removeClass("active"); }); $(elementtoiterate).eq(choosenindex).addClass("active"); } }); startnow = window.setTimeout(changeimagesimple,7000); }); $(".arrow_next").live('click',function(e){gotonextimage()}); $(".arrow_prev").live('click',function(e){gotoprevimage()}); jQuery.fn.imageslider = function(options) { //this.wrap("<div class='sliderscontainer'></div>") number_of_images = this.length; targetclass = "."+this.attr("class"); //alert("fire1:"+targetclass); return this.each(function(index,element){ targetelement = jQuery(element); //Apply essential style required for images to overlap if(index == 0) { targetelement.css({"position":"absolute"}); targetelement.attr({"imageindex":index}); targetelement.addClass("active"); } else{ targetelement.css({"position":"absolute","display":"none"}); targetelement.attr({"imageindex":index}); } //Absolute positioning is essential so that all the images can overlap. if(index == number_of_images - 1) { //targetelement.after("</div>"); //changeimagesimple(); createindicator(); createarrow(); } ////////// End of the plugin ///////// }); } })(jQuery) function createarrow() { elementtoiterate = targetclass; $(elementtoiterate).parent().append("<div class='arrow_prev'></div><div class='arrow_next'></div>"); } function createindicator() { elementtoiterate = targetclass; $(elementtoiterate).parent().after("<div class='slidersindicator '></div>"); for(i = 0;i <= parseInt(number_of_images - 1); i++) { if(i == 0) { $(".slidersindicator").append("<div class='counter isactive'></div>"); } else { $(".slidersindicator").append("<div class='counter'></div>"); } } changeimagesimple(); } function changeimagesimple() { $(elementtoiterate).each(function(i,e){ if($(this).hasClass("active")) { if(i < parseInt(number_of_images - 1)) { currentcounter = i; $(this).fadeOut("slow",function(){$(this).next().addClass("active").fadeIn("fast").end().removeClass("active")}); } else { currentcounter = i; $(this).fadeOut("slow",function(){ $(elementtoiterate).eq(0).fadeIn("fast").addClass("active").end().removeClass("active"); $(elementtoiterate+":first").addClass("active"); }); } } }); //Change the indicator if(currentcounter < parseInt(number_of_images - 1)) {$(".slidersindicator").find(".counter").eq(currentcounter + 1).addClass("isactive").end().eq(currentcounter).removeClass("isactive");} else {$(".slidersindicator").find(".counter").eq(0).addClass("isactive").end().eq(currentcounter).removeClass("isactive");} startnow = window.setTimeout(changeimagesimple,7000); } function gotonextimage() { elementtoiterate = targetclass; window.clearTimeout(startnow); $(elementtoiterate).each(function(i,e){ if($(this).hasClass("active")) { currentcounter = i if(i < parseInt(number_of_images - 1)) { $(this).fadeOut("slow",function(){$(this).next().addClass("active").fadeIn("fast").end().removeClass("active")}); $(".slidersindicator").find(".counter").eq(currentcounter + 1).addClass("isactive").end().eq(currentcounter).removeClass("isactive"); } else { $(this).fadeOut("slow",function(){ $(elementtoiterate).eq(0).fadeIn("fast").addClass("active").end().removeClass("active"); $(elementtoiterate+":first").addClass("active"); }); $(".slidersindicator").find(".counter").eq(0).addClass("isactive").end().eq(currentcounter).removeClass("isactive"); } } }) startnow = window.setTimeout(changeimagesimple,7000); } function gotoprevimage() { elementtoiterate = targetclass; window.clearTimeout(startnow); $(elementtoiterate).each(function(i,e){ if($(this).hasClass("active")) { currentcounter = i if(i > 0) { $(this).fadeOut("slow",function(){$(this).prev().addClass("active").fadeIn("fast").end().removeClass("active")}); $(".slidersindicator").find(".counter").eq(currentcounter - 1).addClass("isactive").end().eq(currentcounter).removeClass("isactive"); } else { $(this).fadeOut("slow",function(){ $(elementtoiterate).last().fadeIn("fast").addClass("active").end().removeClass("active"); $(elementtoiterate+":last").addClass("active"); }); $(".slidersindicator").find(".counter").last().addClass("isactive").end().eq(currentcounter).removeClass("isactive"); } } }); startnow = window.setTimeout(changeimagesimple,7000); }

Can't see the comments? Please login first :)