/* * rusherwang * rusherwang@tencent.com * 2014.1.22 * Github:http://github.com/powy1993/fullpage */ function FullPage(f){function D(a,g,d,b){this.cx=3*a;this.bx=3*(d-a)-this.cx;this.ax=1-this.cx-this.bx;this.cy=3*g;this.by=3*(b-g)-this.cy;this.ay=1-this.cy-this.by}var E=document.getElementById(f.id),c=E.children,u=c.length,Z=u,B=f.slideTime||800,x=f.effect||{},b=0,z,P,k,r,s,L,F,G,T,H=[],Q=[],A=[],U=[],V,v,W=null,t=!1,M=!1,$,h,C,I,w,aa,X,ba,n,p,y,R,Y;if(c&&1!==u){f.mode&&(M=-1!==f.mode.indexOf("nav:"),U=f.mode.split(","),V=U.length);for(h=0;hb;b++){c=this.sampleCurveX(e)-a;if(Math.abs(c)b)return b;for(;dc?d=e:b=e;e=.5*(b-d)+d}return e},solve:function(a,g){return this.sampleCurveY(this.solveCurveX(a,g))}};I=function(){r=document.documentElement.clientWidth||window.innerWidth;s=document.documentElement.clientHeight||window.innerHeight;E.style.height=s+"px"};h=function(a,g,b,c){L=a;F=g;G=b;T=c};if("string"===typeof f.easing)switch(f.easing){case "ease":h(.25,.1,.25,1);break;case "linear":h(0,0,1,1);break;case "ease-in":h(.42,0,1,1);break;case "ease-out":h(0,0,.58,1);break;case "ease-in-out":h(.42, 0,.58,1)}else h(f.easing[0],f.easing[1],f.easing[2],f.easing[3]);if(""!==k){for(;Z--;)H[Z][k+"TransitionTimingFunction"]="cubic-bezier("+L+","+F+","+G+","+T+")";w=function(a,g,b,c,e){a=a.style;g="translate("+g+"px,"+b+"px) translateZ(0)";e.scale&&(g+=0===c?" scale("+e.scale[0]+")":" scale("+e.scale[1]+")");e.rotate&&(g+=0===c?" rotate("+e.rotate[0]+"deg)":" rotate("+e.rotate[1]+"deg)");a[k+"TransformOrigin"]="50% 50%";a[k+"Transform"]=g}}else $=new D(L,F,G,T),w=function(a,b,c,f){var e=a.currentStyle, k=a.style,n=parseInt(k.left||e.left,10),h=parseInt(k.top||e.top,10),s=b-n,t=c-h,r=+new Date+f,p=0,q=x.opacity,u;clearInterval(W);W=setInterval(function(){var a;+new Date>r?(a=q?"left:"+b+"px;top:"+c+"px;filter:alpha(opacity="+100*q[1]+");":"left:"+b+"px;top:"+c+"px;",clearInterval(W)):(u=r-new Date,p=u/f,p=$.solve(1-p,D.prototype.epsilon),a="left:"+(n+s*p)+"px;top:"+(h+t*p)+"px;",q&&(a+="filter:alpha(opacity="+~~(100*(q[1]*p-q[0]*(1-p)))+");"));k.cssText=a},13)};aa={transform:function(a,b,d){var f= 0,e=""!==k||"none"!==a.translate&&a.translate?C:-50;switch(a.translate){case "Y":f=d>b?s:-s;w(c[d],0,f,0,a);break;case "X":f=d>b?r:-r;w(c[d],f,0,0,a);break;case "XY":f={X:d>b?r:-r,Y:d>b?s:-s};w(c[d],f.X,f.Y,0,a);break;default:w(c[d],0,0,0,a)}setTimeout(function(){w(c[d],0,0,B,a)},e+50)},opacity:function(a,b,d){var f=c[d].style;f.opacity=a[0];setTimeout(function(){f.opacity=a[1]},70)}};ba=z&&P?navigator.userAgent.indexOf("Firefox")?function(a,b){a.addEventListener("click",b,!1)}:function(a,b,c){a.addEventListener("touchstart", b,!1);c&&a.addEventListener("touchmove",function(a){a.preventDefault()},!1)}:function(a,b){a.onclick=b};n=function(a,b,c){var f=a.className,e=[];if(-1!==f.indexOf(b)){e=f.split(" ");for(f=e.length;f--;)e[f]===b&&(" "===c||""===c?e.splice(f,1):e[f]=c);e.length?a.className=e.join(" "):(a.removeAttribute("class"),a.removeAttribute("className"))}};M&&(R=function(a,b){var c=v[b].className;n(v[a],"active"," ");v[b].className=""===c?"active":c+" active"});f.continuous&&(p=function(a,b){var c=u;if(b)if(a>= u)for(;c--;)A[c]=0;else if(0>a)for(;c--;)A[c]=Q[c];return(u+a%u)%u});X=function(a){var f=A[b];a=f+a;if(0<=a&&a<=Q[b]){if(0===a)return n(c[b],"step1",""),A[b]=a,!1;if(1===a&&0===f)return c[b].className+=" step1",A[b]=a,!1;n(c[b],"step"+f,"step"+a);A[b]=a;return!1}return!0};y=function(a,g){var d=C,h,e;if(!(f.beforeChange&&"stop"===f.beforeChange(b,c[b])||t||a===b)){if(f.continuous)a=p(a,1);else if(a>=u||0>a)return;t=!0;if(!g&&!X(a-b))return setTimeout(function(){t=!1},B);for(e in x)aa[e](x[e],b,a); d+=""===k?20:0;h=b;b=a;M&&R(h,b);setTimeout(function(){c[a].className+=" slide"},d);setTimeout(function(){H[a][k+"TransitionDuration"]=B+"ms"},20);setTimeout(function(){n(c[h],"current","");n(c[b],"slide","current");f.callback&&f.callback(b,c[b]);t=!1},B+C+120)}};I();h=c[b].className;c[b].className=-1!==h.indexOf("current")?h:h+" current";for(z?window.addEventListener("resize",I,!1):window.onresize=I;V--;)(function(a){switch(!0){case "wheel"===a:Y=function(a){a=a||window.event;a.preventDefault?a.preventDefault(): a.returnValue=!1;t||(a=-a.wheelDelta||a.detail,y(b+(0>a?-1:1)))};z&&document.addEventListener("DOMMouseScroll",Y,!1);window.onmousewheel=document.onmousewheel=Y;break;case "touch"===a:if(!z)break;(function(){var a=x.transform.scale[0],d=x.transform.scale[1]-a,h=x.transform.rotate[0],e=x.transform.rotate[1]-h,N=x.opacity[0],v=x.opacity[1]-N,w,y,z,C,I,q={},D=!1,L=-1===navigator.userAgent.indexOf("Windows Phone")?!1:!0,l,m,F,J,S,G,K,O;K=!P&&L?window.navigator.msPointerEnabled?{start:"MSPointerDown", move:"MSPointerMove",end:"MSPointerUp"}:{start:"pointerDown",move:"pointerMove",end:"pointerUp"}:{start:"touchstart",move:"touchmove",end:"touchend"};document.body.ontouchmove=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};"Y"===x.transform.translate?(F=function(){var a=b-1,e=b+1;f.continuous&&(a=p(a),e=p(e));l=H[a];m=H[e];l&&(l[k+"TransitionDuration"]="0ms",l[k+"Transform"]="translate(0,-"+s+"px) translateZ(0)",l[k+"TransformOrigin"]="50% 100%",c[a].className+=" swipe");m&&(m[k+ "TransitionDuration"]="0ms",m[k+"Transform"]="translate(0,"+s+"px) translateZ(0)",m[k+"TransformOrigin"]="50% 0%",c[e].className+=" swipe")},G=function(b){var c=Math.abs(b.y/s),f=" scale("+~~(100*(a+d*c))/100+") rotate("+~~(h+e*c)+"deg)";l&&0b.y&&(m.opacity=~~(100*(N+v*c))/100,m[k+"Transform"]="translate(0,"+~~(s+b.y)+"px) translateZ(0)"+f)},J=function(a,e){var d=B>>1,g=b+e;f.continuous&&(g= p(g));n(c[g],"swipe","slide");a.opacity=1;a[k+"TransitionDuration"]=d+"ms";a[k+"Transform"]="translate(0,"+e*s+"px) translateZ(0)";setTimeout(function(){n(c[g],"slide","");setTimeout(function(){t=!1},50)},d)},S=function(a,e){var d=b+e,g=~~(B/1.5),h,l;f.continuous?(d=p(d),h=c[p(b-e)],l=!0):h=c[b-e];h&&n(h,"swipe","");!l&&0>d||d>u-1?setTimeout(function(){t=!1},50):(M&&R(b,d),a.opacity=1,n(c[d],"swipe","slide"),a[k+"TransitionDuration"]=g+"ms",a[k+"Transform"]="translate(0,0) translateZ(0)",setTimeout(function(){n(c[b], "current","");n(c[d],"slide","current");b=d;f.callback&&f.callback(b,c[b]);setTimeout(function(){t=!1},50)},g))}):(F=function(){var a=b-1,e=b+1;f.continuous&&(a=p(a),e=p(e));l=H[a];m=H[e];l&&(l[k+"TransitionDuration"]="0ms",l[k+"Transform"]="translate(-"+r+"px,0) translateZ(0)",l[k+"TransformOrigin"]="100% 50%",c[a].className+=" swipe");m&&(m[k+"TransitionDuration"]="0ms",m[k+"Transform"]="translate("+r+"px,0) translateZ(0)",m[k+"TransformOrigin"]="0 50%",c[e].className+=" swipe")},G=function(b){var c= Math.abs(b.x/r),f=" scale("+~~(100*(a+d*c))/100+") rotate("+~~(h+e*c)+"deg)";l&&0b.x&&(m.opacity=~~(100*(N+v*c))/100,m[k+"Transform"]="translate("+~~(r+b.x)+"px,0) translateZ(0)"+f)},J=function(a,e){var d=B>>1,g=b+e;f.continuous&&(g=p(g));n(c[g],"swipe","slide");a.opacity=1;a[k+"TransitionDuration"]=d+"ms";a[k+"Transform"]="translate("+e*r+"px,0) translateZ(0)";setTimeout(function(){n(c[g],"slide", "");setTimeout(function(){t=!1},50)},d)},S=function(a,e){var d=b+e,g=~~(B/1.5),h,l;f.continuous?(d=p(d),h=c[p(b-e)],l=!0):h=c[b-e];h&&n(h,"swipe","");!l&&0>d||d>u-1?setTimeout(function(){t=!1},50):(M&&R(b,d),n(c[d],"swipe","slide"),a.opacity=1,a[k+"TransitionDuration"]=g+"ms",a[k+"Transform"]="translate(0,0) translateZ(0)",setTimeout(function(){n(c[b],"current","");n(c[d],"slide","current");b=d;f.callback&&f.callback(b,c[b]);setTimeout(function(){t=!1},50)},g))});w=function(a){var c=a.touches?a.touches[0]: a;a.preventDefault();P&&(1q.x?1:-1:0>q.y?1:-1,0<=A[b]+a&&A[b]+a<=Q[b]||O&&G(q)):(O=Math.abs(q.x)>Math.abs(q.y)?"X":"Y",O=O===f.effect.transform.translate?!0:!1,D=!0))};y=function(a){var e=a.changedTouches?a.changedTouches[0]:a;a=+new Date-I;var d;d=0;var g=!1;q={x:e.pageX-z,y:e.pageY-C};e=Math.abs(q.x);d=Math.abs(q.y);switch(f.effect.transform.translate){case "Y":g=250>+a&& 30.3*s;d=0+a&&30.3*r;d=0+a&&50.3*s||e>.3*r,d=e>d?0