12 |
- /*! jQuery Smoove v0.2.6 | (c) 2014 Adam Bouqdib | abemedia.co.uk/license */
- (function($,window,document){$.fn.smoove=function(options){$.fn.smoove.init(this,$.extend({},$.fn.smoove.defaults,options))};$.fn.smoove.items=[];$.fn.smoove.loaded=false;$.fn.smoove.defaults={offset:150,opacity:0,transition:"all 1s ease, opacity 1.5s ease",transformStyle:"preserve-3d",transformOrigin:false,perspective:1e3};$.fn.smoove.init=function(items,settings){if($("body").width()==$(window).width())$("body").css("overflow-x","hidden");items.each(function(){var $item=$(this),params=$item.params=$.extend({},settings,$item.data());params.transition=crossBrowser("transition",params.transition,"transform");$item.css(params.transition);$item.data("top",$item.offset().top);$.fn.smoove.items.push($item)});function crossBrowser(property,value,prefix){function ucase(string){return string.charAt(0).toUpperCase()+string.slice(1)}var vendor=["webkit","moz","ms","o"],properties={};for(i in vendor){if(prefix)value=value.replace(prefix,"-"+vendor[i]+"-"+prefix);properties[ucase(vendor[i])+ucase(property)]=value}properties[property]=value;return properties}if(!$.fn.smoove.loaded){$.fn.smoove.loaded=true;var didScroll=false,didResize=false,oldScroll=0,oldHeight=$(window).height(),oldWidth=$(window).width(),oldDocHeight=$(document).height(),direction,resizing;$(window).resize(function(){clearTimeout(resizing);resizing=setTimeout(function(){var height=$(window).height(),width=$(window).width(),direction=oldHeight>height?direction="up":"down",oldHeight=height;if(oldWidth!==width){for(i in $.fn.smoove.items){$.fn.smoove.items[i].css(crossBrowser("transform","")).css(crossBrowser("transition",""))}var stillResizing=self.setInterval(function(){var docHeight=$(document).height();if(docHeight==oldDocHeight){window.clearInterval(stillResizing);for(i in $.fn.smoove.items){$item=$.fn.smoove.items[i];$item.data("top",$item.offset().top);$item.css($item.params.transition)}smooveIt(direction)}oldDocHeight=docHeight},500)}else smooveIt(direction);oldWidth=width},500)});$(window).on("load",function(){smooveIt()}).scroll(function(){didScroll=true});setInterval(function(){if(didScroll){didScroll=false;var scrolltop=$(window).scrollTop(),direction=scrolltop<oldScroll?direction="up":"down";oldScroll=scrolltop;smooveIt(direction)}},250)}function smooveIt(direction){for(i in $.fn.smoove.items){var $item=$.fn.smoove.items[i],params=$item.params,height=$(window).height(),offset=direction?params.offset:0,itemtop=$(window).scrollTop()+height-$item.data("top");if(typeof offset=="string"&&offset.indexOf("%"))offset=parseInt(offset)/100*height;if(itemtop<offset){if(params.opacity!==false)$item.css({opacity:params.opacity});var transforms=[],properties=["move","move3D","moveX","moveY","moveZ","rotate","rotate3d","rotateX","rotateY","rotateZ","scale","scale3d","scaleX","scaleY","skew","skewX","skewY"];for(i in properties){if(typeof params[properties[i]]!=="undefined")transforms[properties[i]]=params[properties[i]]}transform="";for(i in transforms){transform+=i.replace("move","translate")+"("+transforms[i]+") "}if(transform){$item.css(crossBrowser("transform",transform));$item.parent().css(crossBrowser("perspective",params.perspective));if(params.transformOrigin){$item.css(crossBrowser("transformOrigin",params.transformOrigin))}}}else{$item.css("opacity",1).css(crossBrowser("transform",""))}}}}})(jQuery,window,document);
|