diff --git a/dist/js/animsition.js b/dist/js/animsition.js index a3134df..4b0d9b9 100755 --- a/dist/js/animsition.js +++ b/dist/js/animsition.js @@ -17,6 +17,10 @@ }(function ($) { 'use strict'; var namespace = 'animsition'; + var loaded = false; + $(window).on('load', function() { + loaded = true; + }); var __ = { init: function(options){ options = $.extend({ @@ -101,10 +105,15 @@ if(options.timeout) __.addTimer.call(_this); if(options.onLoadEvent) { - $window.on('load.' + namespace, function() { + if(loaded) { if(__.settings.timer) clearTimeout(__.settings.timer); __.in.call(_this); - }); + } else { + $window.on('load', function(e) { + if(__.settings.timer) clearTimeout(__.settings.timer); + __.in.call(_this); + }); + } } $window.on('pageshow.' + namespace, function(event) { diff --git a/dist/js/animsition.min.js b/dist/js/animsition.min.js index 64a143a..8d0c524 100755 --- a/dist/js/animsition.min.js +++ b/dist/js/animsition.min.js @@ -5,4 +5,4 @@ * 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&&t("."+a.overlayClass).length<=0&&i.addOverlay.call(this,a),a.loading&&t("."+a.loadingClass).length<=0&&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)}}); \ No newline at end of file +!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=!1;t(window).on("load",function(){i=!0});var a={init:function(o){o=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}},o),a.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 e=a.supportCheck.call(this,o);if(!e&&o.browser.length>0&&(!e||!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."),e||console.log("Animsition: Does not support this browser."),a.destroy.call(this);var s=a.optionCheck.call(this,o);return s&&t("."+o.overlayClass).length<=0&&a.addOverlay.call(this,o),o.loading&&t("."+o.loadingClass).length<=0&&a.addLoading.call(this,o),this.each(function(){var e=this,s=t(this),r=t(window),l=t(document),d=s.data(n);d||(o=t.extend({},o),s.data(n,{options:o}),o.timeout&&a.addTimer.call(e),o.onLoadEvent&&(i?(a.settings.timer&&clearTimeout(a.settings.timer),a["in"].call(e)):r.on("load",function(t){a.settings.timer&&clearTimeout(a.settings.timer),a["in"].call(e)})),r.on("pageshow."+n,function(t){t.originalEvent.persisted&&a["in"].call(e)}),r.on("unload."+n,function(){}),l.on("click."+n,o.linkElement,function(n){n.preventDefault();var i=t(this),o=i.attr("href");2===n.which||n.metaKey||n.shiftKey||navigator.platform.toUpperCase().indexOf("WIN")!==-1&&n.ctrlKey?window.open(o,"_blank"):a.out.call(e,i,o)}))})},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 i=this,o=t(this),e=o.data(n).options;a.settings.timer=setTimeout(function(){a["in"].call(i),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;s0;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 i=this,o=t(this),e=o.data(n).options,s=o.data(a.settings.data.inDuration),r=o.data(a.settings.data.inClass),l=a.animationCheck.call(i,s,!1,!0),d=a.animationCheck.call(i,r,!0,!0),u=a.optionCheck.call(i,e),c=o.data(n).outClass;e.loading&&a.removeLoading.call(i),c&&o.removeClass(c),u?a.inOverlay.call(i,d,l):a.inDefault.call(i,d,l)},inDefault:function(n,i){var o=t(this);o.css({"animation-duration":i+"ms"}).addClass(n).trigger(a.settings.events.inStart).animateCallback(function(){o.removeClass(n).css({opacity:1}).trigger(a.settings.events.inEnd)})},inOverlay:function(i,o){var e=t(this),s=e.data(n).options;e.css({opacity:1}).trigger(a.settings.events.inStart),t(s.overlayParentElement).children("."+s.overlayClass).css({"animation-duration":o+"ms"}).addClass(i).animateCallback(function(){e.trigger(a.settings.events.inEnd)})},out:function(i,o){var e=this,s=t(this),r=s.data(n).options,l=i.data(a.settings.data.outClass),d=s.data(a.settings.data.outClass),u=i.data(a.settings.data.outDuration),c=s.data(a.settings.data.outDuration),m=l?l:d,g=u?u:c,f=a.animationCheck.call(e,m,!0,!1),v=a.animationCheck.call(e,g,!1,!1),h=a.optionCheck.call(e,r);s.data(n).outClass=f,h?a.outOverlay.call(e,f,v,o):a.outDefault.call(e,f,v,o)},outDefault:function(i,o,e){var s=t(this),r=s.data(n).options;s.css({"animation-duration":o+1+"ms"}).addClass(i).trigger(a.settings.events.outStart).animateCallback(function(){s.trigger(a.settings.events.outEnd),r.transition(e)})},outOverlay:function(i,o,e){var s=this,r=t(this),l=r.data(n).options,d=r.data(a.settings.data.inClass),u=a.animationCheck.call(s,d,!0,!0);t(l.overlayParentElement).children("."+l.overlayClass).css({"animation-duration":o+1+"ms"}).removeClass(u).addClass(i).trigger(a.settings.events.outStart).animateCallback(function(){r.trigger(a.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(i){return a[i]?a[i].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof i&&i?void t.error("Method "+i+" does not exist on jQuery."+n):a.init.apply(this,arguments)}}); \ No newline at end of file diff --git a/package.json b/package.json index 8d36a21..85dbb06 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "page transition", "jQuery" ], - "main":"./dist/js/animsition.js", + "main": "./dist/js/animsition.js", "author": { "name": "blivesta", "email": "design@blivesta.com", @@ -21,22 +21,22 @@ "url": "https://github.com/blivesta/animsition.git", "type": "git" }, - "scripts":{ + "scripts": { "setup": "npm i && gulp build" }, "devDependencies": { "browser-sync": "^2.9.12", - "autoprefixer":"^6.0.3", - "del":"^1.2.0", - "gulp":"^3.9.0", - "gulp-cssnano":"^2.0.0", - "gulp-header":"^1.7.1", - "gulp-jshint":"^1.11.2", - "gulp-postcss":"^6.0.0", - "gulp-rename":"^1.2.2", - "gulp-uglify":"^1.2.0", - "jshint-stylish":"^2.0.1", - "postcss-import":"^7.0.0", - "run-sequence":"^1.1.2" + "autoprefixer": "^6.0.3", + "del": "^1.2.0", + "gulp": "^3.9.0", + "gulp-cssnano": "^2.0.0", + "gulp-header": "^1.7.1", + "gulp-jshint": "^1.11.2", + "gulp-postcss": "^6.0.0", + "gulp-rename": "^1.2.2", + "gulp-uglify": "^1.2.0", + "jshint-stylish": "^2.0.1", + "postcss-import": "^7.0.0", + "run-sequence": "^1.1.2" } } diff --git a/src/js/animsition.js b/src/js/animsition.js index cacf92f..542e262 100755 --- a/src/js/animsition.js +++ b/src/js/animsition.js @@ -10,6 +10,10 @@ }(function ($) { 'use strict'; var namespace = 'animsition'; + var loaded = false; + $(window).on('load', function() { + loaded = true; + }); var __ = { init: function(options){ options = $.extend({ @@ -94,10 +98,15 @@ if(options.timeout) __.addTimer.call(_this); if(options.onLoadEvent) { - $window.on('load.' + namespace, function() { + if(loaded) { if(__.settings.timer) clearTimeout(__.settings.timer); __.in.call(_this); - }); + } else { + $window.on('load', function(e) { + if(__.settings.timer) clearTimeout(__.settings.timer); + __.in.call(_this); + }); + } } $window.on('pageshow.' + namespace, function(event) {