mirror of
https://github.com/alexfoxy/lax.js.git
synced 2026-04-24 03:01:10 -04:00
2 lines
6.9 KiB
JavaScript
2 lines
6.9 KiB
JavaScript
"use strict";!function(){var lax={};window.lax=lax;for(var parallaxObjects=[],transforms={"data-lax-opacity":function(a,t){a.opacity=t},"data-lax-translate":function(a,t){a.transform+=" translate(".concat(t,"px, ").concat(t,"px)")},"data-lax-translate-x":function(a,t){a.transform+=" translateX(".concat(t,"px)")},"data-lax-translate-y":function(a,t){a.transform+=" translateY(".concat(t,"px)")},"data-lax-scale":function(a,t){a.transform+=" scale(".concat(t,")")},"data-lax-scale-x":function(a,t){a.transform+=" scaleX(".concat(t,")")},"data-lax-scale-y":function(a,t){a.transform+=" scaleY(".concat(t,")")},"data-lax-skew":function(a,t){a.transform+=" skew(".concat(t,"deg, ").concat(t,"deg)")},"data-lax-skew-x":function(a,t){a.transform+=" skewX(".concat(t,"deg)")},"data-lax-skew-y":function(a,t){a.transform+=" skewY(".concat(t,"deg)")},"data-lax-rotate":function(a,t){a.transform+=" rotate(".concat(t,"deg)")},"data-lax-brightness":function(a,t){a.filter+=" brightness(".concat(t,"%)")},"data-lax-contrast":function(a,t){a.filter+=" contrast(".concat(t,"%)")},"data-lax-hue-rotate":function(a,t){a.filter+=" hue-rotate(".concat(t,"deg)")},"data-lax-blur":function(a,t){a.filter+=" blur(".concat(t,"px)")},"data-lax-invert":function(a,t){a.filter+=" invert(".concat(t,"%)")},"data-lax-saturate":function(a,t){a.filter+=" saturate(".concat(t,"%)")},"data-lax-grayscale":function(a,t){a.filter+=" grayscale(".concat(t,"%)")}},_crazy="",i=0;i<100;i++)_crazy+=" "+window.innerHeight*(i/100)+" "+360*Math.random()+", ";function intrp(a,t){for(var e=0;a[e][0]<=t&&void 0!==a[e+1];)e+=1;var n=a[e][0],r=void 0===a[e-1]?n:a[e-1][0],l=a[e][1],o=void 0===a[e-1]?l:a[e-1][1];return Math.min(Math.max((t-r)/(n-r),0),1)*(l-o)+o}lax.presets={linger:function(a){return{"data-lax-translate-y":"(vh*0.7) 0, 0 200, -500 0"}},lazy:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:100;return{"data-lax-translate-y":"(vh) 0, (-elh) ".concat(a)}},eager:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:100;return{"data-lax-translate-y":"(vh) 0, (-elh) -".concat(a)}},slalom:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:50;return{"data-lax-translate-x":"vh ".concat(a,", (vh*0.8) ").concat(-a,", (vh*0.6) ").concat(a,", (vh*0.4) ").concat(-a,", (vh*0.2) ").concat(a,", (vh*0) ").concat(-a,", (-elh) ").concat(a)}},crazy:function(a){return{"data-lax-hue-rotate":_crazy}},spin:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:360;return{"data-lax-rotate":"(vh) 0, (-elh) ".concat(a)}},spinRev:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:360;return{"data-lax-rotate":"(vh) 0, (-elh) ".concat(-a)}},spinIn:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:360;return{"data-lax-rotate":"vh ".concat(a,", (vh*0.5) 0")}},spinOut:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:360;return{"data-lax-rotate":"(vh*0.5) 0, -elh ".concat(a)}},blurInOut:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:40;return{"data-lax-blur":"(vh) ".concat(a,", (vh*0.8) 0, (vh*0.2) 0, 0 ").concat(a)}},blurIn:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:40;return{"data-lax-blur":"(vh) ".concat(a,", (vh*0.7) 0")}},blurOut:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:40;return{"data-lax-blur":"(vh*0.3) 0, 0 ".concat(a)}},fadeInOut:function(){return{"data-lax-opacity":"(vh) 0, (vh*0.8) 1, (vh*0.2) 1, 0 0"}},fadeIn:function(){return{"data-lax-opacity":"(vh) 0, (vh*0.7) 1"}},fadeOut:function(){return{"data-lax-opacity":"(vh*0.3) 1, 0 0"}},driftLeft:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:100;return{"data-lax-translate-x":"vh ".concat(a,", -elh ").concat(-a)}},driftRight:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:100;return{"data-lax-translate-x":"vh ".concat(-a,", -elh ").concat(a)}},leftToRight:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:1;return{"data-lax-translate-x":"vh 0, -elh (vw*".concat(a,")")}},rightToLeft:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:1;return{"data-lax-translate-x":"vh 0, -elh (vw*".concat(-a,")")}},zoomInOut:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:.2;return{"data-lax-scale":"(vh) ".concat(a,", (vh*0.8) 1, (vh*0.2) 1, -elh ").concat(a)}},zoomIn:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:.2;return{"data-lax-scale":"(vh) ".concat(a,", (vh*0.7) 1")}},zoomOut:function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:.2;return{"data-lax-scale":"(vh*0.3) 1, -elh ".concat(a)}}},lax.addPreset=function(a,t){lax.presets[a]=t},lax.setup=function(a){lax.populateParallaxObjects()},lax.populateParallaxObjects=function(){var selector=Object.keys(transforms).map(function(a){return"[".concat(a,"]")}).join(",");selector+=",[data-lax-preset]",document.querySelectorAll(selector).forEach(function(el){var o={el:el,transforms:[]},presetNames=el.attributes["data-lax-preset"]&&el.attributes["data-lax-preset"].value;presetNames&&(presetNames.split(" ").forEach(function(a){var t=a.split("-"),e=lax.presets[t[0]];if(e){var n=e(t[1]);for(var r in n)el.setAttribute(r,n[r])}else console.error("preset #{bits[0]} is not defined")}),el.setAttribute("data-lax-anchor","self"),el.attributes.removeNamedItem("data-lax-preset"));var optimise=!(el.attributes["data-lax-optimize"]&&"false"==el.attributes["data-lax-optimize"].value);optimise&&(el.style["-webkit-backface-visibility"]="hidden"),el.attributes["data-lax-optimize"]&&el.attributes.removeNamedItem("data-lax-optimize");for(var i=0;i<el.attributes.length;i++){var a=el.attributes[i],bits=a.name.split("-");if("lax"===bits[1])if("data-lax-anchor"===a.name){o["data-lax-anchor"]="self"===a.value?el:document.querySelector(a.value);var rect=o["data-lax-anchor"].getBoundingClientRect();o["data-lax-anchor-top"]=Math.floor(rect.top)+window.scrollY}else o.transforms[a.name]=a.value.replace(new RegExp("vw","g"),window.innerWidth).replace(new RegExp("vh","g"),window.innerHeight).replace(new RegExp("elh","g"),el.clientHeight).replace(new RegExp("elw","g"),el.clientWidth).replace(new RegExp("-vw","g"),-window.innerWidth).replace(new RegExp("-vh","g"),-window.innerHeight).replace(new RegExp("-elh","g"),-el.clientHeight).replace(new RegExp("-elw","g"),-el.clientWidth).replace(/\s+/g," ").split(",").map(function(x){return x.trim().split(" ").map(function(y){return"("===y[0]?eval(y):parseFloat(y)})}).sort(function(a,t){return a[0]-t[0]})}parallaxObjects.push(o)})};var lastScroll=0;lax.update=function(i){lastScroll=i,parallaxObjects.forEach(function(a){var t=a["data-lax-anchor-top"]?a["data-lax-anchor-top"]-i:i,e={transform:"",filter:""};for(var n in a.transforms){var r=a.transforms[n],l=transforms[n],o=intrp(r,t);if(!l)return void console.error("lax: "+n+" is not supported");l(e,o)}for(var c in e)0===e.opacity?a.el.style.opacity=0:a.el.style[c]=e[c]})}}();
|