/*! * animsition v4.0.1 * A simple and easy jQuery plugin for CSS animated page transitions. * http://blivesta.github.io/animsition * License : MIT * Author : blivesta (http://blivesta.com/) */ !(function (t) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? (module.exports = t(require("jquery"))) : t(jQuery); })(function (t) { "use strict"; var n = "animsition", i = { init: function (a) { (a = t.extend( { inClass: "fade-in", outClass: "fade-out", inDuration: 1500, outDuration: 800, linkElement: ".animsition-link", loading: !0, loadingParentElement: "body", loadingClass: "animsition-loading", loadingInner: "", timeout: !1, timeoutCountdown: 5e3, onLoadEvent: !0, browser: ["animation-duration", "-webkit-animation-duration"], overlay: !1, overlayClass: "animsition-overlay-slide", overlayParentElement: "body", transition: function (t) { window.location.href = t; }, }, a )), (i.settings = { timer: !1, data: { inClass: "animsition-in-class", inDuration: "animsition-in-duration", outClass: "animsition-out-class", outDuration: "animsition-out-duration", overlay: "animsition-overlay", }, events: { inStart: "animsition.inStart", inEnd: "animsition.inEnd", outStart: "animsition.outStart", outEnd: "animsition.outEnd", }, }); var o = i.supportCheck.call(this, a); if (!o && a.browser.length > 0 && (!o || !this.length)) return ( "console" in window || ((window.console = {}), (window.console.log = function (t) { return t; })), this.length || console.log("Animsition: Element does not exist on page."), o || console.log("Animsition: Does not support this browser."), i.destroy.call(this) ); var e = i.optionCheck.call(this, a); return ( e && i.addOverlay.call(this, a), a.loading && i.addLoading.call(this, a), this.each(function () { var o = this, e = t(this), s = t(window), r = t(document), l = e.data(n); l || ((a = t.extend({}, a)), e.data(n, { options: a }), a.timeout && i.addTimer.call(o), a.onLoadEvent && s.on("load." + n, function () { i.settings.timer && clearTimeout(i.settings.timer), i["in"].call(o); }), s.on("pageshow." + n, function (t) { t.originalEvent.persisted && i["in"].call(o); }), s.on("unload." + n, function () {}), r.on("click." + n, a.linkElement, function (n) { n.preventDefault(); var a = t(this), e = a.attr("href"); 2 === n.which || n.metaKey || n.shiftKey || (-1 !== navigator.platform.toUpperCase().indexOf("WIN") && n.ctrlKey) ? window.open(e, "_blank") : i.out.call(o, a, e); })); }) ); }, addOverlay: function (n) { t(n.overlayParentElement).prepend( '
' ); }, addLoading: function (n) { t(n.loadingParentElement).append( '
' + n.loadingInner + "
" ); }, removeLoading: function () { var i = t(this), a = i.data(n).options, o = t(a.loadingParentElement).children("." + a.loadingClass); o.fadeOut().remove(); }, addTimer: function () { var a = this, o = t(this), e = o.data(n).options; i.settings.timer = setTimeout(function () { i["in"].call(a), t(window).off("load." + n); }, e.timeoutCountdown); }, supportCheck: function (n) { var i = t(this), a = n.browser, o = a.length, e = !1; 0 === o && (e = !0); for (var s = 0; o > s; s++) if ("string" == typeof i.css(a[s])) { e = !0; break; } return e; }, optionCheck: function (n) { var a, o = t(this); return (a = n.overlay || o.data(i.settings.data.overlay) ? !0 : !1); }, animationCheck: function (i, a, o) { var e = t(this), s = e.data(n).options, r = typeof i, l = !a && "number" === r, d = a && "string" === r && i.length > 0; return ( l || d ? (i = i) : a && o ? (i = s.inClass) : !a && o ? (i = s.inDuration) : a && !o ? (i = s.outClass) : a || o || (i = s.outDuration), i ); }, in: function () { var a = this, o = t(this), e = o.data(n).options, s = o.data(i.settings.data.inDuration), r = o.data(i.settings.data.inClass), l = i.animationCheck.call(a, s, !1, !0), d = i.animationCheck.call(a, r, !0, !0), u = i.optionCheck.call(a, e), c = o.data(n).outClass; e.loading && i.removeLoading.call(a), c && o.removeClass(c), u ? i.inOverlay.call(a, d, l) : i.inDefault.call(a, d, l); }, inDefault: function (n, a) { var o = t(this); o.css({ "animation-duration": a + "ms" }) .addClass(n) .trigger(i.settings.events.inStart) .animateCallback(function () { o.removeClass(n) .css({ opacity: 1 }) .trigger(i.settings.events.inEnd); }); }, inOverlay: function (a, o) { var e = t(this), s = e.data(n).options; e.css({ opacity: 1 }).trigger(i.settings.events.inStart), t(s.overlayParentElement) .children("." + s.overlayClass) .css({ "animation-duration": o + "ms" }) .addClass(a) .animateCallback(function () { e.trigger(i.settings.events.inEnd); }); }, out: function (a, o) { var e = this, s = t(this), r = s.data(n).options, l = a.data(i.settings.data.outClass), d = s.data(i.settings.data.outClass), u = a.data(i.settings.data.outDuration), c = s.data(i.settings.data.outDuration), m = l ? l : d, g = u ? u : c, f = i.animationCheck.call(e, m, !0, !1), v = i.animationCheck.call(e, g, !1, !1), h = i.optionCheck.call(e, r); (s.data(n).outClass = f), h ? i.outOverlay.call(e, f, v, o) : i.outDefault.call(e, f, v, o); }, outDefault: function (a, o, e) { var s = t(this), r = s.data(n).options; s.css({ "animation-duration": o + 1 + "ms" }) .addClass(a) .trigger(i.settings.events.outStart) .animateCallback(function () { s.trigger(i.settings.events.outEnd), r.transition(e); }); }, outOverlay: function (a, o, e) { var s = this, r = t(this), l = r.data(n).options, d = r.data(i.settings.data.inClass), u = i.animationCheck.call(s, d, !0, !0); t(l.overlayParentElement) .children("." + l.overlayClass) .css({ "animation-duration": o + 1 + "ms" }) .removeClass(u) .addClass(a) .trigger(i.settings.events.outStart) .animateCallback(function () { r.trigger(i.settings.events.outEnd), l.transition(e); }); }, destroy: function () { return this.each(function () { var i = t(this); t(window).off("." + n), i.css({ opacity: 1 }).removeData(n); }); }, }; (t.fn.animateCallback = function (n) { var i = "animationend webkitAnimationEnd"; return this.each(function () { var a = t(this); a.on(i, function () { return a.off(i), n.call(this); }); }); }), (t.fn.animsition = function (a) { return i[a] ? i[a].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof a && a ? void t.error("Method " + a + " does not exist on jQuery." + n) : i.init.apply(this, arguments); }); });