mirror of
https://github.com/dawidolko/Website-Templates.git
synced 2025-10-27 16:03:10 +01:00
212 lines
6.1 KiB
JavaScript
212 lines
6.1 KiB
JavaScript
/*
|
|
* faded 0.3.1 - jQuery plugin
|
|
* written by Nathan Searles
|
|
* http://nathansearles.com/faded/
|
|
*
|
|
* Copyright (c) 2009 Nathan Searles (http://nathansearles.com/)
|
|
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
|
* and GPL (GPL-LICENSE.txt) licenses.
|
|
*
|
|
* Built for jQuery library
|
|
* http://jquery.com
|
|
* Compatible with jQuery 1.3.2+
|
|
*
|
|
*/
|
|
if(typeof jQuery != "undefined") {
|
|
jQuery(function($) {
|
|
$.fn.extend({
|
|
faded: function(options) {
|
|
var settings = $.extend({}, $.fn.faded.defaults, options);
|
|
return this.each(
|
|
function() {
|
|
if($.fn.jquery < "1.3.1") {return;}
|
|
var $t = $(this);
|
|
var $c = $t.children(":nth-child(1)");
|
|
var o = $.metadata ? $.extend({}, settings, $t.metadata()) : settings;
|
|
var total = $c.children().size();
|
|
var next = 0, prev = 0, number = 0, currentitem = 0, restart = 0, restartinterval = 0;
|
|
var loaded,active,imgSrc,clicked,current;
|
|
if (o.random) {
|
|
$.fn.reorder = function(callback) {
|
|
function randOrd() { return(Math.round(Math.random())-0.5); }
|
|
return($(this).each(function() {
|
|
var $this = $(this);
|
|
var $children = $this.children();
|
|
var childCount = $children.length;
|
|
if (childCount > 1) {
|
|
$children.hide();
|
|
var indices = new Array();
|
|
for (i=0;i<childCount;i++) { indices[indices.length] = i; }
|
|
indices = indices.sort(randOrd);
|
|
$.each(indices,function(j,k) {
|
|
var $child = $children.eq(k);
|
|
var $clone = $child.clone(true);
|
|
$clone.show().appendTo($this);
|
|
if (callback !== undefined) {
|
|
callback($child, $clone);
|
|
}
|
|
$child.remove();
|
|
});
|
|
}
|
|
}));
|
|
};
|
|
$c.reorder();
|
|
}
|
|
function pause() {
|
|
clearInterval(autoplay);
|
|
clearTimeout(restart);
|
|
restart = setTimeout(function() {
|
|
autoplay = setInterval(function(){
|
|
animate("next");
|
|
},o.autoplay);
|
|
},o.autorestart);
|
|
}
|
|
$c.css({position:"relative"});
|
|
$c.children().css({
|
|
position:"absolute",
|
|
top: 0,
|
|
left: 0,
|
|
zIndex: 0,
|
|
display:"none"
|
|
});
|
|
if (o.autoheight) {
|
|
$c.animate({height: $c.children(":eq(0)").outerHeight()},o.autoheight);
|
|
}
|
|
if (o.pagination) {
|
|
if (o.autopagination) {
|
|
$t.append("<ul class="+o.pagination+"></ul>");
|
|
$c.children().each(function(){
|
|
$("."+o.pagination+"",$t).append("<li><a rel="+number+" href=\"#\" >"+(number+1)+"</a></li>");
|
|
number++;
|
|
});
|
|
}
|
|
$("."+o.pagination+" li a:eq(0)",$t).parent().addClass("current");
|
|
$("."+o.pagination+" li a",$t).click(function(){
|
|
current = $("."+o.pagination+" li.current a",$t).attr("rel");
|
|
clicked = $(this).attr("rel");
|
|
if (current != clicked) {animate("pagination",clicked,current);}
|
|
if(o.autoplay){pause();}
|
|
return false;
|
|
});
|
|
}
|
|
if (o.sequentialloading&&$c.children()[0].tagName=="IMG") {
|
|
$c.css({background:"url("+o.loadingimg+") no-repeat 50% 50%"});
|
|
imgSrc = $("img:eq(0)",$c).attr("src");
|
|
$("img:eq(0)",$c).attr("src", imgSrc).load(function() {
|
|
$(this).fadeIn(o.speed,function(){
|
|
loaded = true;
|
|
});
|
|
});
|
|
} else {
|
|
$c.find(":eq(0)").fadeIn(o.speed,function(){
|
|
loaded = true;
|
|
});
|
|
}
|
|
if (o.bigtarget) {
|
|
$c.css({"cursor":"pointer"});
|
|
$c.click(function(){
|
|
animate("next");
|
|
if(o.autoplay){
|
|
if (o.autorestart) {
|
|
pause();
|
|
} else {
|
|
clearInterval(autoplay);
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
}
|
|
if (o.autoplay) {
|
|
autoplay = setInterval(function(){
|
|
animate("next");
|
|
},o.autoplay);
|
|
pause();
|
|
}
|
|
$("."+o.nextbtn,$t).click(function(){
|
|
animate("next");
|
|
if(o.autoplay){
|
|
if (o.autorestart) {
|
|
pause();
|
|
} else {
|
|
clearInterval(autoplay);
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
$("."+o.prevbtn,$t).click(function(){
|
|
animate("prev");
|
|
if(o.autoplay){
|
|
if (o.autorestart) {
|
|
pause();
|
|
} else {
|
|
clearInterval(autoplay);
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
function animate(dir,clicked,current){
|
|
if (!active&&loaded) {
|
|
active=true;
|
|
switch(dir) {
|
|
case "next":
|
|
prev = next;
|
|
next = currentitem*1+1;
|
|
if (total === next) { next = 0; }
|
|
break;
|
|
case "prev":
|
|
prev = next;
|
|
next = currentitem*1-1;
|
|
if (next === -1) { next = total-1; }
|
|
break;
|
|
case "pagination":
|
|
next = clicked;
|
|
prev = current;
|
|
break;
|
|
}
|
|
if (o.pagination) {
|
|
$(".pagination li.current",$t).removeClass("current");
|
|
$(".pagination li a:eq("+next+")",$t).parent().addClass("current");
|
|
}
|
|
if (o.crossfade) {
|
|
$c.children(":eq("+next+")").css({zIndex:10}).fadeIn(o.speed,function(){
|
|
$c.children(":eq("+prev+")").css({display:"none",zIndex:0});
|
|
$(this).css({zIndex:0});
|
|
currentitem = next;
|
|
active = false;
|
|
});
|
|
} else {
|
|
$c.children(":eq("+prev+")").fadeOut(o.speed,function(){
|
|
if (o.autoheight) {
|
|
$c.animate({height: $c.children(":eq("+next+")").outerHeight()},o.autoheight,function(){
|
|
$c.children(":eq("+next+")").fadeIn(o.speed);
|
|
});
|
|
} else {
|
|
$c.children(":eq("+next+")").fadeIn(o.speed);
|
|
}
|
|
currentitem = next;
|
|
active = false;
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
});
|
|
$.fn.faded.defaults = {
|
|
speed: 300,
|
|
crossfade: false,
|
|
bigtarget: false,
|
|
sequentialloading: false,
|
|
autoheight: false,
|
|
pagination: "pagination",
|
|
autopagination: true,
|
|
nextbtn: "next",
|
|
prevbtn: "prev",
|
|
loadingimg: false,
|
|
autoplay: false,
|
|
autorestart: false,
|
|
random: false
|
|
};
|
|
});
|
|
} |