1 line
9.3 KiB
JavaScript
1 line
9.3 KiB
JavaScript
|
|
(function(a,i,d,h){var f="parallax";var e=30;var c={relativeInput:false,clipRelativeInput:false,calibrationThreshold:100,calibrationDelay:500,supportDelay:500,calibrateX:false,calibrateY:true,invertX:true,invertY:true,limitX:false,limitY:false,scalarX:10,scalarY:10,frictionX:0.1,frictionY:0.1,originX:0.5,originY:0.5,pointerEvents:true,precision:1};function g(k,m){this.element=k;this.$context=a(k).data("api",this);this.$layers=this.$context.find(".layer");var j={calibrateX:this.$context.data("calibrate-x")||null,calibrateY:this.$context.data("calibrate-y")||null,invertX:this.$context.data("invert-x")||null,invertY:this.$context.data("invert-y")||null,limitX:parseFloat(this.$context.data("limit-x"))||null,limitY:parseFloat(this.$context.data("limit-y"))||null,scalarX:parseFloat(this.$context.data("scalar-x"))||null,scalarY:parseFloat(this.$context.data("scalar-y"))||null,frictionX:parseFloat(this.$context.data("friction-x"))||null,frictionY:parseFloat(this.$context.data("friction-y"))||null,originX:parseFloat(this.$context.data("origin-x"))||null,originY:parseFloat(this.$context.data("origin-y"))||null,pointerEvents:this.$context.data("pointer-events")||true,precision:parseFloat(this.$context.data("precision"))||1};for(var l in j){if(j[l]===null){delete j[l]}}a.extend(this,c,m,j);this.calibrationTimer=null;this.calibrationFlag=true;this.enabled=false;this.depthsX=[];this.depthsY=[];this.raf=null;this.bounds=null;this.ex=0;this.ey=0;this.ew=0;this.eh=0;this.ecx=0;this.ecy=0;this.erx=0;this.ery=0;this.cx=0;this.cy=0;this.ix=0;this.iy=0;this.mx=0;this.my=0;this.vx=0;this.vy=0;this.onMouseMove=this.onMouseMove.bind(this);this.onDeviceOrientation=this.onDeviceOrientation.bind(this);this.onOrientationTimer=this.onOrientationTimer.bind(this);this.onCalibrationTimer=this.onCalibrationTimer.bind(this);this.onAnimationFrame=this.onAnimationFrame.bind(this);this.onWindowResize=this.onWindowResize.bind(this);this.initialise()}g.prototype.transformSupport=function(w){var o=d.createElement("div");var u=false;var v=null;var p=false;var k=null;var s=null;for(var q=0,t=this.vendors.length;q<t;q++){if(this.vendors[q]!==null){k=this.vendors[q][0]+"transform";s=this.vendors[q][1]+"Transform"}else{k="transform";s="transform"}if(o.style[s]!==h){u=true;break}}switch(w){case"2D":p=u;break;case"3D":if(u){var j=d.body||d.createElement("body");var m=d.documentElement;var n=m.style.overflow;var r=false;if(!d.body){r=true;m.style.overflow="hidden";m.appendChild(j);j.style.overflow="hidden";j.style.background=""}j.appendChild(o);o.style[s]="translate3d(1px,1px,1px)";v=i.getComputedStyle(o).getPropertyValue(k);p=v!==h&&v.length>0&&v!=="none";m.style.overflow=n;j.removeChild(o);if(r){j.removeAttribute("style");j.parentNode.removeChild(j)}}break}return p};g.prototype.ww=null;g.prototype.wh=null;g.prototype.wcx=null;g.prototype.wcy=null;g.prototype.wrx=null;g.prototype.wry=null;g.prototype.portrait=null;g.prototype.desktop=!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i);g.prototype.vendors=[null,["-webkit-","webkit"],["-moz-","Moz"],["-o-","O"],["-ms-","ms"]];g.prototype.motionSupport=!!i.DeviceMotionEvent;g.prototype.orientationSupport=!!i.DeviceOrientationEvent;g.prototype.orientationStatus=0;g.prototype.transform2DSupport=g.prototype.transformSupport("2D");g.prototype.transform3DSupport=g.prototype.transformSupport("3D");g.prototype.propertyCache={};g.prototype.initialise=function(){if(this.$context.css("position")==="static"){this.$context.css({position:"relative"})}if(!this.pointerEvents){this.$context.css({pointerEvents:"none"})}this.accelerate(this.$context);this.updateLayers();this.updateDimensions();this.enable();this.queueCalibration(this.calibrationDelay)};g.prototype.updateLayers=function(){this.$layers=this.$context.find(".layer");this.depthsX=[];this.depthsY=[];this.$layers.css({position:"absolute",display:"block",left:0,top:0});this.$layers.first().css({position:"relative"});this.accelerate(this.$layers);this.$layers.each(a.proxy(function(l,k){var j=a(k).data("depth")||0;this.depthsX.
|