-
-
Save marcosbrasil/1913981 to your computer and use it in GitHub Desktop.
Easy Slider 1.7 Left And Right Function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Easy Slider 1.7 - jQuery plugin | |
* written by Alen Grakalic | |
* http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding | |
* | |
* Copyright (c) 2009 Alen Grakalic (http://cssglobe.com) | |
* Dual licensed under the MIT (MIT-LICENSE.txt) | |
* and GPL (GPL-LICENSE.txt) licenses. | |
* | |
* Built for jQuery library | |
* http://jquery.com | |
* | |
*/ | |
/* | |
* markup example for $("#slider").easySlider(); | |
* | |
* <div id="slider"> | |
* <ul> | |
* <li><img src="images/01.jpg" alt="" /></li> | |
* <li><img src="images/02.jpg" alt="" /></li> | |
* <li><img src="images/03.jpg" alt="" /></li> | |
* <li><img src="images/04.jpg" alt="" /></li> | |
* <li><img src="images/05.jpg" alt="" /></li> | |
* </ul> | |
* </div> | |
* | |
*/ | |
(function($) { | |
$.fn.easySlider = function(options){ | |
// default configuration properties | |
var defaults = { | |
prevId: 'prevBtn', | |
prevText: 'Previous', | |
nextId: 'nextBtn', | |
nextText: 'Next', | |
controlsShow: true, | |
controlsBefore: '', | |
controlsAfter: '', | |
controlsFade: true, | |
firstId: 'firstBtn', | |
firstText: 'First', | |
firstShow: false, | |
lastId: 'lastBtn', | |
lastText: 'Last', | |
lastShow: false, | |
vertical: false, | |
speed: 800, | |
auto: false, | |
pause: 2000, | |
continuous: false, | |
numeric: false, | |
numericId: 'controls', | |
dir: 'prev' | |
}; | |
var options = $.extend(defaults, options); | |
this.each(function() { | |
var obj = $(this); | |
var s = $("li", obj).length; | |
var w = $("li", obj).width(); | |
var h = $("li", obj).height(); | |
var clickable = true; | |
obj.width(w); | |
obj.height(h); | |
obj.css("overflow","hidden"); | |
var ts = s-1; | |
var t = 0; | |
$("ul", obj).css('width',s*w); | |
if(options.continuous){ | |
$("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-left","-"+ w +"px")); | |
$("ul", obj).append($("ul li:nth-child(2)", obj).clone()); | |
$("ul", obj).css('width',(s+1)*w); | |
}; | |
if(!options.vertical) $("li", obj).css('float','left'); | |
if(options.controlsShow){ | |
var html = options.controlsBefore; | |
if(options.numeric){ | |
html += '<ol id="'+ options.numericId +'"></ol>'; | |
} else { | |
if(options.firstShow) html += '<span id="'+ options.firstId +'"><a href=\"javascript:void(0);\">'+ options.firstText +'</a></span>'; | |
html += ' <span id="'+ options.prevId +'"><a href=\"javascript:void(0);\">'+ options.prevText +'</a></span>'; | |
html += ' <span id="'+ options.nextId +'"><a href=\"javascript:void(0);\">'+ options.nextText +'</a></span>'; | |
if(options.lastShow) html += ' <span id="'+ options.lastId +'"><a href=\"javascript:void(0);\">'+ options.lastText +'</a></span>'; | |
}; | |
html += options.controlsAfter; | |
$(obj).after(html); | |
}; | |
if(options.numeric){ | |
for(var i=0;i<s;i++){ | |
$(document.createElement("li")) | |
.attr('id',options.numericId + (i+1)) | |
.html('<a rel='+ i +' href=\"javascript:void(0);\">'+ (i+1) +'</a>') | |
.appendTo($("#"+ options.numericId)) | |
.click(function(){ | |
animate($("a",$(this)).attr('rel'),true); | |
}); | |
}; | |
} else { | |
$("a","#"+options.nextId).click(function(){ | |
animate("next",true); | |
}); | |
$("a","#"+options.prevId).click(function(){ | |
animate("prev",true); | |
}); | |
$("a","#"+options.firstId).click(function(){ | |
animate("first",true); | |
}); | |
$("a","#"+options.lastId).click(function(){ | |
animate("last",true); | |
}); | |
}; | |
function setCurrent(i){ | |
i = parseInt(i)+1; | |
$("li", "#" + options.numericId).removeClass("current"); | |
$("li#" + options.numericId + i).addClass("current"); | |
}; | |
function adjust(){ | |
if(t>ts) t=0; | |
if(t<0) t=ts; | |
if(!options.vertical) { | |
$("ul",obj).css("margin-left",(t*w*-1)); | |
} else { | |
$("ul",obj).css("margin-left",(t*h*-1)); | |
} | |
clickable = true; | |
if(options.numeric) setCurrent(t); | |
}; | |
function animate(dir,clicked){ | |
if (clickable){ | |
clickable = false; | |
var ot = t; | |
switch(dir){ | |
case "next": | |
t = (ot>=ts) ? (options.continuous ? t+1 : ts) : t+1; | |
break; | |
case "prev": | |
t = (t<=0) ? (options.continuous ? t-1 : 0) : t-1; | |
break; | |
case "first": | |
t = 0; | |
break; | |
case "last": | |
t = ts; | |
break; | |
default: | |
t = dir; | |
break; | |
}; | |
var diff = Math.abs(ot-t); | |
var speed = diff*options.speed; | |
if(!options.vertical) { | |
p = (t*w*-1); | |
$("ul",obj).animate( | |
{ marginLeft: p }, | |
{ queue:false, duration:speed, complete:adjust } | |
); | |
} else { | |
p = (t*h*-1); | |
$("ul",obj).animate( | |
{ marginTop: p }, | |
{ queue:false, duration:speed, complete:adjust } | |
); | |
}; | |
if(!options.continuous && options.controlsFade){ | |
if(t==ts){ | |
$("a","#"+options.nextId).hide(); | |
$("a","#"+options.lastId).hide(); | |
} else { | |
$("a","#"+options.nextId).show(); | |
$("a","#"+options.lastId).show(); | |
}; | |
if(t==0){ | |
$("a","#"+options.prevId).hide(); | |
$("a","#"+options.firstId).hide(); | |
} else { | |
$("a","#"+options.prevId).show(); | |
$("a","#"+options.firstId).show(); | |
}; | |
}; | |
if(clicked) clearTimeout(timeout); | |
if(options.auto && !clicked){; | |
timeout = setTimeout(function(){ | |
animate(options.dir,false); | |
},diff*options.speed+options.pause); | |
}; | |
}; | |
}; | |
// init | |
var timeout; | |
if(options.auto){; | |
timeout = setTimeout(function(){ | |
animate(options.dir,false); | |
},options.pause); | |
}; | |
if(options.numeric) setCurrent(0); | |
if(!options.continuous && options.controlsFade){ | |
$("a","#"+options.prevId).hide(); | |
$("a","#"+options.firstId).hide(); | |
}; | |
}); | |
}; | |
})(jQuery); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanx Man !!!