diff --git a/plugins/snowfall-on-login-screen/index.php b/plugins/snowfall-on-login-screen/index.php index 065716af8..b3ccb1d41 100644 --- a/plugins/snowfall-on-login-screen/index.php +++ b/plugins/snowfall-on-login-screen/index.php @@ -4,7 +4,7 @@ class SnowfallOnLoginScreenPlugin extends \RainLoop\Plugins\AbstractPlugin { const NAME = 'Snowfall on login screen', - VERSION = '2.0', + VERSION = '2.1', CATEGORY = 'Fun', DESCRIPTION = 'Snowfall on login screen (just for fun).'; diff --git a/plugins/snowfall-on-login-screen/js/include.js b/plugins/snowfall-on-login-screen/js/include.js index 5a461d625..e8adf5505 100644 --- a/plugins/snowfall-on-login-screen/js/include.js +++ b/plugins/snowfall-on-login-screen/js/include.js @@ -1,12 +1,17 @@ if (!/iphone|ipod|ipad|android/i.test(navigator.userAgent)) { - document.addEventListener('DOMContentLoaded', () => { - if (window.snowFall && window.rl && !rl.settings.get('Auth')) - { - window.snowFall.snow(document.getElementsByTagName('body'), { - shadow: true, round: true, minSize: 2, maxSize: 5 - }); - } - }); + if (window.snowFall && window.rl) + { + let body = document.body; + addEventListener('sm-show-screen', e => { + if ('login' == e.detail) { + window.snowFall.snow(body, { + shadow: true, round: true, minSize: 2, maxSize: 5 + }); + } else if (body.snow) { + body.snow.clear(); + } + }); + } } diff --git a/plugins/snowfall-on-login-screen/js/snowfall.js b/plugins/snowfall-on-login-screen/js/snowfall.js index 6fa0c799e..671b44e50 100644 --- a/plugins/snowfall-on-login-screen/js/snowfall.js +++ b/plugins/snowfall-on-login-screen/js/snowfall.js @@ -47,7 +47,7 @@ */ // Paul Irish requestAnimationFrame polyfill -(function(window) { +(window => { var lastTime = 0; var vendors = ['webkit', 'moz']; for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { @@ -57,11 +57,10 @@ } if (!window.requestAnimationFrame) - window.requestAnimationFrame = function(callback, element) { + window.requestAnimationFrame = callback => { var currTime = new Date().getTime(); var timeToCall = window.Math.max(0, 16 - (currTime - lastTime)); - var id = window.setTimeout(function() { callback(currTime + timeToCall); }, - timeToCall); + var id = window.setTimeout(() => callback(currTime + timeToCall), timeToCall); lastTime = currTime + timeToCall; return id; }; @@ -70,7 +69,7 @@ window.cancelAnimationFrame = function(id) { clearTimeout(id); }; -}(window)); +})(window); var snowFall = (function(){ function jSnow(){ @@ -248,28 +247,14 @@ var snowFall = (function(){ cancelAnimationFrame(snowTimeout); } }; - }; + } return{ - snow : function(elements, options){ + snow : (elements, options) => { if(typeof(options) === 'string'){ - if(elements.length > 0){ - for(var i = 0; i < elements.length; i++){ - if(elements[i].snow){ - elements[i].snow.clear(); - } - } - }else{ - elements.snow.clear(); - } + elements.snow.clear(); }else{ - if(elements.length > 0){ - for(var i = 0; i < elements.length; i++){ - new jSnow().snow(elements[i], options); - } - }else{ - new jSnow().snow(elements, options); - } + new jSnow().snow(elements, options); } } }; -})(); \ No newline at end of file +})();