mirror of
https://github.com/dawidolko/Website-Templates.git
synced 2026-02-04 09:30:05 +00:00
Website templates
This commit is contained in:
319
ace-responsive-coming-soon-template/js/jquery.vegas.js
Normal file
319
ace-responsive-coming-soon-template/js/jquery.vegas.js
Normal file
@@ -0,0 +1,319 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
// Vegas - Fullscreen Backgrounds and Slideshows with jQuery.
|
||||
// v1.3.4 - released 2013-12-16 13:28
|
||||
// Licensed under the MIT license.
|
||||
// http://vegas.jaysalvat.com/
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (C) 2010-2013 Jay Salvat
|
||||
// http://jaysalvat.com/
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
(function($) {
|
||||
var $background = $("<img />").addClass("vegas-background"), $overlay = $("<div />").addClass("vegas-overlay"), $loading = $("<div />").addClass("vegas-loading"), $current = $(), paused = null, backgrounds = [], step = 0, delay = 5e3, walk = function() {}, timer, methods = {
|
||||
init: function(settings) {
|
||||
var options = {
|
||||
src: getBackground(),
|
||||
align: "center",
|
||||
valign: "center",
|
||||
fade: 0,
|
||||
loading: true,
|
||||
load: function() {},
|
||||
complete: function() {}
|
||||
};
|
||||
$.extend(options, $.vegas.defaults.background, settings);
|
||||
if (options.loading) {
|
||||
loading();
|
||||
}
|
||||
var $new = $background.clone();
|
||||
$new.css({
|
||||
position: "fixed",
|
||||
left: "0px",
|
||||
top: "0px"
|
||||
}).bind("load", function() {
|
||||
if ($new == $current) {
|
||||
return;
|
||||
}
|
||||
$(window).bind("load resize.vegas", function(e) {
|
||||
resize($new, options);
|
||||
});
|
||||
if ($current.is("img")) {
|
||||
$current.stop();
|
||||
$new.hide().insertAfter($current).fadeIn(options.fade, function() {
|
||||
$(".vegas-background").not(this).remove();
|
||||
$("body").trigger("vegascomplete", [ this, step - 1 ]);
|
||||
options.complete.apply($new, [ step - 1 ]);
|
||||
});
|
||||
} else {
|
||||
$new.hide().prependTo("body").fadeIn(options.fade, function() {
|
||||
$("body").trigger("vegascomplete", [ this, step - 1 ]);
|
||||
options.complete.apply(this, [ step - 1 ]);
|
||||
});
|
||||
}
|
||||
$current = $new;
|
||||
resize($current, options);
|
||||
if (options.loading) {
|
||||
loaded();
|
||||
}
|
||||
$("body").trigger("vegasload", [ $current.get(0), step - 1 ]);
|
||||
options.load.apply($current.get(0), [ step - 1 ]);
|
||||
if (step) {
|
||||
$("body").trigger("vegaswalk", [ $current.get(0), step - 1 ]);
|
||||
options.walk.apply($current.get(0), [ step - 1 ]);
|
||||
}
|
||||
}).attr("src", options.src);
|
||||
return $.vegas;
|
||||
},
|
||||
destroy: function(what) {
|
||||
if (!what || what == "background") {
|
||||
$(".vegas-background, .vegas-loading").remove();
|
||||
$(window).unbind("*.vegas");
|
||||
$current = $();
|
||||
}
|
||||
if (!what || what == "overlay") {
|
||||
$(".vegas-overlay").remove();
|
||||
}
|
||||
clearInterval(timer);
|
||||
return $.vegas;
|
||||
},
|
||||
overlay: function(settings) {
|
||||
var options = {
|
||||
src: null,
|
||||
opacity: null
|
||||
};
|
||||
$.extend(options, $.vegas.defaults.overlay, settings);
|
||||
$overlay.remove();
|
||||
$overlay.css({
|
||||
margin: "0",
|
||||
padding: "0",
|
||||
position: "fixed",
|
||||
left: "0px",
|
||||
top: "0px",
|
||||
width: "100%",
|
||||
height: "100%"
|
||||
});
|
||||
if (options.src === false) {
|
||||
$overlay.css("backgroundImage", "none");
|
||||
}
|
||||
if (options.src) {
|
||||
$overlay.css("backgroundImage", "url(" + options.src + ")");
|
||||
}
|
||||
if (options.opacity) {
|
||||
$overlay.css("opacity", options.opacity);
|
||||
}
|
||||
$overlay.prependTo("body");
|
||||
return $.vegas;
|
||||
},
|
||||
slideshow: function(settings, keepPause) {
|
||||
var options = {
|
||||
step: step,
|
||||
delay: delay,
|
||||
preload: false,
|
||||
loading: true,
|
||||
backgrounds: backgrounds,
|
||||
walk: walk
|
||||
};
|
||||
$.extend(options, $.vegas.defaults.slideshow, settings);
|
||||
if (options.backgrounds != backgrounds) {
|
||||
if (!settings.step) {
|
||||
options.step = 0;
|
||||
}
|
||||
if (!settings.walk) {
|
||||
options.walk = function() {};
|
||||
}
|
||||
if (options.preload) {
|
||||
$.vegas("preload", options.backgrounds);
|
||||
}
|
||||
}
|
||||
backgrounds = options.backgrounds;
|
||||
delay = options.delay;
|
||||
step = options.step;
|
||||
walk = options.walk;
|
||||
clearInterval(timer);
|
||||
if (!backgrounds.length) {
|
||||
return $.vegas;
|
||||
}
|
||||
var doSlideshow = function() {
|
||||
if (step < 0) {
|
||||
step = backgrounds.length - 1;
|
||||
}
|
||||
if (step >= backgrounds.length || !backgrounds[step - 1]) {
|
||||
step = 0;
|
||||
}
|
||||
var settings = backgrounds[step++];
|
||||
settings.walk = options.walk;
|
||||
settings.loading = options.loading;
|
||||
if (typeof settings.fade == "undefined") {
|
||||
settings.fade = options.fade;
|
||||
}
|
||||
if (settings.fade > options.delay) {
|
||||
settings.fade = options.delay;
|
||||
}
|
||||
$.vegas(settings);
|
||||
};
|
||||
doSlideshow();
|
||||
if (!keepPause) {
|
||||
paused = false;
|
||||
$("body").trigger("vegasstart", [ $current.get(0), step - 1 ]);
|
||||
}
|
||||
if (!paused) {
|
||||
timer = setInterval(doSlideshow, options.delay);
|
||||
}
|
||||
return $.vegas;
|
||||
},
|
||||
next: function() {
|
||||
var from = step;
|
||||
if (step) {
|
||||
$.vegas("slideshow", {
|
||||
step: step
|
||||
}, true);
|
||||
$("body").trigger("vegasnext", [ $current.get(0), step - 1, from - 1 ]);
|
||||
}
|
||||
return $.vegas;
|
||||
},
|
||||
previous: function() {
|
||||
var from = step;
|
||||
if (step) {
|
||||
$.vegas("slideshow", {
|
||||
step: step - 2
|
||||
}, true);
|
||||
$("body").trigger("vegasprevious", [ $current.get(0), step - 1, from - 1 ]);
|
||||
}
|
||||
return $.vegas;
|
||||
},
|
||||
jump: function(s) {
|
||||
var from = step;
|
||||
if (step) {
|
||||
$.vegas("slideshow", {
|
||||
step: s
|
||||
}, true);
|
||||
$("body").trigger("vegasjump", [ $current.get(0), step - 1, from - 1 ]);
|
||||
}
|
||||
return $.vegas;
|
||||
},
|
||||
stop: function() {
|
||||
var from = step;
|
||||
step = 0;
|
||||
paused = null;
|
||||
clearInterval(timer);
|
||||
$("body").trigger("vegasstop", [ $current.get(0), from - 1 ]);
|
||||
return $.vegas;
|
||||
},
|
||||
pause: function() {
|
||||
paused = true;
|
||||
clearInterval(timer);
|
||||
$("body").trigger("vegaspause", [ $current.get(0), step - 1 ]);
|
||||
return $.vegas;
|
||||
},
|
||||
get: function(what) {
|
||||
if (what === null || what == "background") {
|
||||
return $current.get(0);
|
||||
}
|
||||
if (what == "overlay") {
|
||||
return $overlay.get(0);
|
||||
}
|
||||
if (what == "step") {
|
||||
return step - 1;
|
||||
}
|
||||
if (what == "paused") {
|
||||
return paused;
|
||||
}
|
||||
},
|
||||
preload: function(backgrounds) {
|
||||
var cache = [];
|
||||
for (var i in backgrounds) {
|
||||
if (backgrounds[i].src) {
|
||||
var cacheImage = document.createElement("img");
|
||||
cacheImage.src = backgrounds[i].src;
|
||||
cache.push(cacheImage);
|
||||
}
|
||||
}
|
||||
return $.vegas;
|
||||
}
|
||||
};
|
||||
function resize($img, settings) {
|
||||
var options = {
|
||||
align: "center",
|
||||
valign: "center"
|
||||
};
|
||||
$.extend(options, settings);
|
||||
if ($img.height() === 0) {
|
||||
$img.load(function() {
|
||||
resize($(this), settings);
|
||||
});
|
||||
return;
|
||||
}
|
||||
var vp = getViewportSize(), ww = vp.width, wh = vp.height, iw = $img.width(), ih = $img.height(), rw = wh / ww, ri = ih / iw, newWidth, newHeight, newLeft, newTop, properties;
|
||||
if (rw > ri) {
|
||||
newWidth = wh / ri;
|
||||
newHeight = wh;
|
||||
} else {
|
||||
newWidth = ww;
|
||||
newHeight = ww * ri;
|
||||
}
|
||||
properties = {
|
||||
width: newWidth + "px",
|
||||
height: newHeight + "px",
|
||||
top: "auto",
|
||||
bottom: "auto",
|
||||
left: "auto",
|
||||
right: "auto"
|
||||
};
|
||||
if (!isNaN(parseInt(options.valign, 10))) {
|
||||
properties.top = 0 - (newHeight - wh) / 100 * parseInt(options.valign, 10) + "px";
|
||||
} else if (options.valign == "top") {
|
||||
properties.top = 0;
|
||||
} else if (options.valign == "bottom") {
|
||||
properties.bottom = 0;
|
||||
} else {
|
||||
properties.top = (wh - newHeight) / 2;
|
||||
}
|
||||
if (!isNaN(parseInt(options.align, 10))) {
|
||||
properties.left = 0 - (newWidth - ww) / 100 * parseInt(options.align, 10) + "px";
|
||||
} else if (options.align == "left") {
|
||||
properties.left = 0;
|
||||
} else if (options.align == "right") {
|
||||
properties.right = 0;
|
||||
} else {
|
||||
properties.left = (ww - newWidth) / 2;
|
||||
}
|
||||
$img.css(properties);
|
||||
}
|
||||
function loading() {
|
||||
$loading.prependTo("body").fadeIn();
|
||||
}
|
||||
function loaded() {
|
||||
$loading.fadeOut("fast", function() {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
function getBackground() {
|
||||
if ($("body").css("backgroundImage")) {
|
||||
return $("body").css("backgroundImage").replace(/url\("?(.*?)"?\)/i, "$1");
|
||||
}
|
||||
}
|
||||
function getViewportSize() {
|
||||
var elmt = window, prop = "inner";
|
||||
if (!("innerWidth" in window)) {
|
||||
elmt = document.documentElement || document.body;
|
||||
prop = "client";
|
||||
}
|
||||
return {
|
||||
width: elmt[prop + "Width"],
|
||||
height: elmt[prop + "Height"]
|
||||
};
|
||||
}
|
||||
$.vegas = function(method) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||
} else if (typeof method === "object" || !method) {
|
||||
return methods.init.apply(this, arguments);
|
||||
} else {
|
||||
$.error("Method " + method + " does not exist");
|
||||
}
|
||||
};
|
||||
$.vegas.defaults = {
|
||||
background: {},
|
||||
slideshow: {},
|
||||
overlay: {}
|
||||
};
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user