diff options
Diffstat (limited to 'themes/greydragon/js')
| -rw-r--r-- | themes/greydragon/js/waitMe.js | 242 | ||||
| -rw-r--r-- | themes/greydragon/js/waitMe.min.js | 11 |
2 files changed, 253 insertions, 0 deletions
diff --git a/themes/greydragon/js/waitMe.js b/themes/greydragon/js/waitMe.js new file mode 100644 index 0000000..6c5cebc --- /dev/null +++ b/themes/greydragon/js/waitMe.js @@ -0,0 +1,242 @@ +/* +waitMe - 1.12 [12.05.15] +Author: vadimsva +Github: https://github.com/vadimsva/waitMe +*/ +(function($) { + $.fn.waitMe = function(method) { + return this.each(function() { + + var elem = $(this), + elemClass = 'waitMe', + waitMe_text, + effectObj, + effectElemCount, + createSubElem = false, + specificAttr = 'background-color', + addStyle = '', + effectElemHTML = '', + waitMeObj, + containerSize, + elemSize, + _options, + currentID; + + var methods = { + init : function() { + var _defaults = { + effect: 'bounce', + text: '', + bg: 'rgba(255,255,255,0.7)', + color: '#000', + sizeW: '', + sizeH: '', + source: '' + }; + _options = $.extend(_defaults, method); + + currentID = new Date().getMilliseconds(); + waitMeObj = $('<div class="' + elemClass + '" data-waitme_id="' + currentID + '"></div>'); + var size = 'width:' + _options.sizeW + ';height:' + _options.sizeH; + + switch (_options.effect) { + case 'none': + effectElemCount = 0; + break; + case 'bounce': + effectElemCount = 3; + containerSize = ''; + elemSize = size; + break; + case 'rotateplane': + effectElemCount = 1; + containerSize = ''; + elemSize = size; + break; + case 'stretch': + effectElemCount = 5; + containerSize = ''; + elemSize = size; + break; + case 'orbit': + effectElemCount = 2; + containerSize = size; + elemSize = ''; + break; + case 'roundBounce': + effectElemCount = 12; + containerSize = size; + elemSize = ''; + break; + case 'win8': + effectElemCount = 5; + createSubElem = true; + containerSize = size; + elemSize = size; + break; + case 'win8_linear': + effectElemCount = 5; + createSubElem = true; + containerSize = size; + elemSize = ''; + break; + case 'ios': + effectElemCount = 12; + containerSize = size; + elemSize = ''; + break; + case 'facebook': + effectElemCount = 3; + containerSize = ''; + elemSize = size; + break; + case 'rotation': + effectElemCount = 1; + specificAttr = 'border-color'; + containerSize = ''; + elemSize = size; + break; + case 'timer': + effectElemCount = 2; + addStyle = 'border-color:' + _options.color; + containerSize = size; + elemSize = ''; + break; + case 'pulse': + effectElemCount = 1; + specificAttr = 'border-color'; + containerSize = ''; + elemSize = size; + break; + case 'progressBar': + effectElemCount = 1; + containerSize = ''; + elemSize = size; + break; + case 'bouncePulse': + effectElemCount = 3; + containerSize = ''; + elemSize = size; + break; + case 'img': + effectElemCount = 1; + containerSize = ''; + elemSize = size; + break; + } + + if (_options.sizeW === '' && _options.sizeH === '') { + elemSize = ''; + containerSize = ''; + } + if (containerSize !== '' && addStyle !== '') { + addStyle = ';' + addStyle; + } + + if (effectElemCount > 0) { + effectObj = $('<div class="' + elemClass + '_progress ' + _options.effect + '"></div>'); + if(_options.effect == 'img') { + effectElemHTML = '<img src="' + _options.source + '" style="' + elemSize + '">'; + } else { + for (var i = 1; i <= effectElemCount; ++i) { + if (createSubElem) { + effectElemHTML += '<div class="' + elemClass + '_progress_elem' + i + '" style="' + elemSize + '"><div style="' + specificAttr +':' + _options.color +'"></div></div>'; + } else { + effectElemHTML += '<div class="' + elemClass + '_progress_elem' + i + '" style="' + specificAttr + ':' + _options.color +';' + elemSize + '"></div>'; + } + } + } + effectObj = $('<div class="' + elemClass + '_progress ' + _options.effect + '" style="' + containerSize + addStyle + '">' + effectElemHTML + '</div>'); + } + + if (_options.text) { + waitMe_text = $('<div class="' + elemClass + '_text" style="color:' + _options.color + '">' + _options.text + '</div>'); + } + var elemObj = elem.find('> .' + elemClass); + + if (elemObj) { + elemObj.remove(); + } + var waitMeDivObj = $('<div class="' + elemClass + '_content"></div>'); + waitMeDivObj.append(effectObj, waitMe_text); + waitMeObj.append(waitMeDivObj); + if (elem[0].tagName == 'HTML') { + elem = $('body'); + } + elem.addClass(elemClass + '_container').attr('data-waitme_id', currentID).append(waitMeObj); + elemObj = elem.find('> .' + elemClass); + var elemContentObj = elem.find('.' + elemClass + '_content'); + elemObj.css({background: _options.bg}); + elemContentObj.css({marginTop: - elemContentObj.outerHeight() / 2 + 'px'}); + + function setElTop(getTop) { + elemContentObj.css({top: 'auto', transform: 'translateY(' + getTop + 'px) translateZ(0)'}); + } + if (elem.outerHeight() > $(window).height()) { + var sTop = $(window).scrollTop(); + var elH = elemContentObj.outerHeight(); + var elTop = elem.offset().top; + var cH = elem.outerHeight(); + var getTop = sTop - elTop + $(window).height()/2; + if (getTop < 0) { + getTop = Math.abs(getTop); + } + if (getTop - elH >= 0 && getTop + elH <= cH) { + if (elTop - sTop > $(window).height()/2) { + getTop = elH; + } + setElTop(getTop); + } else { + if (sTop > elTop + cH - elH) { + getTop = sTop - elTop - elH; + } else { + getTop = sTop - elTop + elH; + } + setElTop(getTop); + } + $(document).scroll(function() { + var sTop = $(window).scrollTop(); + var getTop = sTop - elTop + $(window).height()/2; + if (getTop - elH >= 0 && getTop + elH <= cH) { + setElTop(getTop); + } + }); + } + + }, + hide : function() { + waitMeClose(); + } + }; + + function waitMeClose() { + var currentID = elem.attr('data-waitme_id'); + elem.removeClass(elemClass + '_container').removeAttr('data-waitme_id'); + elem.find('.' + elemClass + '[data-waitme_id="' + currentID + '"]').remove(); + } + + 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); + } + + $.event.special.destroyed = { + remove: function(o) { + if (o.handler) { + o.handler(); + } + } + }; + + }); + + }; + $(window).load(function(){ + $('body.waitMe_body').addClass('hideMe'); + setTimeout(function(){ + $('body.waitMe_body').find('.waitMe_container:not([data-waitme_id])').remove(); + $('body.waitMe_body').removeClass('waitMe_body hideMe'); + },200); + }); +})(jQuery); diff --git a/themes/greydragon/js/waitMe.min.js b/themes/greydragon/js/waitMe.min.js new file mode 100644 index 0000000..55212a0 --- /dev/null +++ b/themes/greydragon/js/waitMe.min.js @@ -0,0 +1,11 @@ +/* +waitMe - 1.12 [12.05.15] +Author: vadimsva +Github: https://github.com/vadimsva/waitMe +*/ +(function(b){b.fn.waitMe=function(n){return this.each(function(){var g=b(this),y,u,d,v=!1,r="background-color",p="",q="",w,e,c,f,x,l={init:function(){function z(a){t.css({top:"auto",transform:"translateY("+a+"px) translateZ(0)"})}f=b.extend({effect:"bounce",text:"",bg:"rgba(255,255,255,0.7)",color:"#000",sizeW:"",sizeH:"",source:""},n);x=(new Date).getMilliseconds();w=b('<div class="waitMe" data-waitme_id="'+x+'"></div>');var a="width:"+f.sizeW+";height:"+f.sizeH;switch(f.effect){case "none":d=0; +break;case "bounce":d=3;e="";c=a;break;case "rotateplane":d=1;e="";c=a;break;case "stretch":d=5;e="";c=a;break;case "orbit":d=2;e=a;c="";break;case "roundBounce":d=12;e=a;c="";break;case "win8":d=5;v=!0;c=e=a;break;case "win8_linear":d=5;v=!0;e=a;c="";break;case "ios":d=12;e=a;c="";break;case "facebook":d=3;e="";c=a;break;case "rotation":d=1;r="border-color";e="";c=a;break;case "timer":d=2;p="border-color:"+f.color;e=a;c="";break;case "pulse":d=1;r="border-color";e="";c=a;break;case "progressBar":d= +1;e="";c=a;break;case "bouncePulse":d=3;e="";c=a;break;case "img":d=1,e="",c=a}""===f.sizeW&&""===f.sizeH&&(e=c="");""!==e&&""!==p&&(p=";"+p);if(0<d){u=b('<div class="waitMe_progress '+f.effect+'"></div>');if("img"==f.effect)q='<img src="'+f.source+'" style="'+c+'">';else for(a=1;a<=d;++a)q=v?q+('<div class="waitMe_progress_elem'+a+'" style="'+c+'"><div style="'+r+":"+f.color+'"></div></div>'):q+('<div class="waitMe_progress_elem'+a+'" style="'+r+":"+f.color+";"+c+'"></div>');u=b('<div class="waitMe_progress '+ +f.effect+'" style="'+e+p+'">'+q+"</div>")}f.text&&(y=b('<div class="waitMe_text" style="color:'+f.color+'">'+f.text+"</div>"));(a=g.find("> .waitMe"))&&a.remove();a=b('<div class="waitMe_content"></div>');a.append(u,y);w.append(a);"HTML"==g[0].tagName&&(g=b("body"));g.addClass("waitMe_container").attr("data-waitme_id",x).append(w);var a=g.find("> .waitMe"),t=g.find(".waitMe_content");a.css({background:f.bg});t.css({marginTop:-t.outerHeight()/2+"px"});if(g.outerHeight()>b(window).height()){var a=b(window).scrollTop(), +h=t.outerHeight(),m=g.offset().top,l=g.outerHeight(),k=a-m+b(window).height()/2;0>k&&(k=Math.abs(k));0<=k-h&&k+h<=l?m-a>b(window).height()/2&&(k=h):k=a>m+l-h?a-m-h:a-m+h;z(k);b(document).scroll(function(){var a=b(window).scrollTop()-m+b(window).height()/2;0<=a-h&&a+h<=l&&z(a)})}},hide:function(){var b=g.attr("data-waitme_id");g.removeClass("waitMe_container").removeAttr("data-waitme_id");g.find('.waitMe[data-waitme_id="'+b+'"]').remove()}};if(l[n])return l[n].apply(this,Array.prototype.slice.call(arguments, +1));if("object"===typeof n||!n)return l.init.apply(this,arguments);b.event.special.destroyed={remove:function(b){b.handler&&b.handler()}}})};b(window).load(function(){b("body.waitMe_body").addClass("hideMe");setTimeout(function(){b("body.waitMe_body").find(".waitMe_container:not([data-waitme_id])").remove();b("body.waitMe_body").removeClass("waitMe_body hideMe")},200)})})(jQuery); |
