|
|
Line 13: |
Line 13: |
| * Requires: jQuery v1.7.1 or later | | * Requires: jQuery v1.7.1 or later |
| */ | | */ |
- | ;(function($, undefined) {
| + | eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(6($,B){"4u 46";7 C=\'3.0.2\';6 1j(s){4($.M.D.1j)W(s)}6 W(){4(!(!40.2C||!2C.W))2C.W(\'[D] \'+4m.4n.4p.36(4s,\' \'))}$.4w[\':\'].2p=6(a){8 a.15};$.M.D=6(g,h){7 o={s:9.3J,c:9.4y};4(!(!(9.E===0)||g==\'1X\')){4(!($.3z||!o.s)){W(\'3v 1a 3u, 4G 1Z\');$(6(){$(o.s,o.c).D(g,h)});8 9}W(\'1Y; 4H 1g 2c 3Y 3J\'+($.3z?\'\':\' (3v 1a 3u)\'));8 9}8 9.V(6(){7 a=3M(9,g,h);4(a===I)8;a.1G=a.1G||$.M.D.1G;4(9.R)1B(9.R);9.R=9.15=0;9.1t=0;7 b=$(9);7 c=a.2L?$(a.2L,9):b.3F();7 d=c.5a();4(d.E<2){W(\'1Y; 5c 5r 5t: \'+d.E);8}7 e=3B(b,c,d,a,o);4(e===I)8;7 f=e.1R?10:2X(d[e.N],d[e.H],e,!e.13);4(f){f+=(e.33||0);4(f<10)f=10;1j(\'5u S: \'+f);9.R=2V(6(){1p(d,e,0,!a.13)},f)}})};6 1v(a,b,c){7 d=$(a).1o(\'D.1E\');4(!d)8;7 e=!!a.15;4(!(!e||!d.2p))d.2p(a,d,b,c);J 4(!(e||!d.2Z))d.2Z(a,d,b,c)}6 3M(e,f,g){4(e.1t===B)e.1t=0;4(f===B||f===K)f={};4(f.2U==34){5p(f){1y\'1M\':1y\'1X\':7 h=$(e).1o(\'D.1E\');4(!h)8 I;e.1t++;4(e.R)1B(e.R);e.R=0;4(h.1g)$(h.1g).1X();$(e).5n(\'D.1E\');4(f==\'1M\')1M(e,h);8 I;1y\'5e\':e.15=(e.15===1)?0:1;2S(e.15,g,e);1v(e);8 I;1y\'2R\':e.15=1;1v(e);8 I;1y\'31\':e.15=0;2S(I,g,e);1v(e);8 I;1y\'1w\':1y\'O\':h=$(e).1o(\'D.1E\');4(!h){W(\'2P 1a 2c, "1w/O" 59\');8 I}4(2j g==\'3A\')h.1P=g;$.M.D[f](h);8 I;55:f={T:f}}8 f}J 4(f.2U==54){7 i=f;f=$(e).1o(\'D.1E\');4(!f){W(\'2P 1a 2c, 3O 1a 1K 2I\');8 I}4(i<0||i>=f.1g.E){W(\'53 2I 2Y: \'+i);8 I}f.H=i;4(e.R){1B(e.R);e.R=0}4(2j g==\'3A\')f.1P=g;1p(f.1g,f,1,i>=f.N);8 I}8 f;6 2S(a,b,c){4(!(a||!(b===L))){7 d=$(c).1o(\'D.1E\');4(!d){W(\'2P 1a 2c, 3O 1a 31\');8 I}4(c.R){1B(c.R);c.R=0}1p(d.1g,d,1,!d.13)}}}6 2H(a,b){4(!($.1T.19||!b.1S||!a.37.3b)){52{a.37.51(\'3b\')}50(4X){}}}6 1M(a,b){4(b.O)$(b.O).2a(b.1O);4(b.1w)$(b.1w).2a(b.1O);4(b.1l||b.1D)$.V(b.1U||[],6(){9.2a().4N()});b.1U=K;$(a).2a(\'2F.D 3I.D\');4(b.1M)b.1M(b)}6 3B(c,d,f,g,o){7 k;7 l=$.1i({},$.M.D.3P,g||{},$.3Q?c.3Q():$.4K?c.1o():{});7 m=$.1h(c.1o)?c.1o(l.3U):K;4(m)l=$.1i(l,m);4(l.3V)l.3X=l.2A||f.E;7 n=c[0];c.1o(\'D.1E\',l);l.$1A=c;l.2y=n.1t;l.1g=f;l.12=l.12?[l.12]:[];l.11=l.11?[l.11]:[];4(!($.1T.19||!l.1S))l.11.Z(6(){2H(9,l)});4(l.1R)l.11.Z(6(){1p(f,l,0,!l.13)});39(l);4(!($.1T.19||!l.1S||l.2w))2u(d);4(c.P(\'23\')==\'4F\')c.P(\'23\',\'4D\');4(l.G)c.G(l.G);4(!(!l.F||l.F==\'26\'))c.F(l.F);4(l.Q!==B){l.Q=27(l.Q,10);4(l.Q>=f.E||l.4C<0)l.Q=0;J k=L}J 4(l.13)l.Q=f.E-1;J l.Q=0;4(l.1b){l.18=[];1H(7 i=0;i<f.E;i++)l.18.Z(i);l.18.2s(6(a,b){8 1z.1b()-0.5});4(k){1H(7 p=0;p<f.E;p++){4(l.Q==l.18[p]){l.X=p}}}J{l.X=1;l.Q=l.18[1]}}J 4(l.Q>=f.E)l.Q=0;l.N=l.Q||0;7 q=l.Q;d.P({23:\'3N\',2g:0,2h:0}).2n().V(6(i){7 z;4(l.13)z=q?i<=q?f.E+(i-q):q-i:f.E-i;J z=q?i>=q?f.E-(i-q):q-i:f.E-i;$(9).P(\'z-2Y\',z)});$(f[q]).P(\'19\',1).4v();2H(f[q],l);4(l.1k){4(!l.1V){4(l.G)d.G(l.G);4(!(!l.F||l.F==\'26\'))d.F(l.F)}J{d.V(6(){7 a=$(9);7 b=(l.1V===L)?a.G()/a.F():l.1V;4(!(!l.G||a.G()==l.G)){a.G(l.G);a.F(l.G/b)}4(!(!l.F||!(a.F()<l.F))){a.F(l.F);a.G(l.F*b)}})}}4(!(!l.2E||!((!l.1k)||l.1V))){d.V(6(){7 a=$(9);a.P({"2f-2h":l.G?((l.G-a.G())/2)+"1F":0,"2f-2g":l.F?((l.F-a.F())/2)+"1F":0})})}4(!(!l.2E||l.1k||l.2d)){d.V(6(){7 a=$(9);a.P({"2f-2h":l.G?((l.G-a.G())/2)+"1F":0,"2f-2g":l.F?((l.F-a.F())/2)+"1F":0})})}7 r=!(!(l.2q||l.2r)||!(c.4t()<1));4(r){7 s=0,1s=0;1H(7 j=0;j<f.E;j++){7 t=$(f[j]),e=t[0],w=t.4r(),h=t.4q();4(!w)w=e.3a||e.G||t.21(\'G\');4(!h)h=e.3c||e.F||t.21(\'F\');s=w>s?w:s;1s=h>1s?h:1s}4(!(!l.2q||!(s>0)||!(1s>0)))c.P({G:s+\'1F\',F:1s+\'1F\'});4(!(!l.2r||!(1s>0)))c.P({F:1s+\'1F\'})}7 u=I;4(l.2R)c.1J(\'2F.D\',6(){u=L;9.15++;1v(n,L)}).1J(\'3I.D\',6(){4(u)9.15--;1v(n,L)});4(3f(l)===I)8 I;7 v=I;g.2k=g.2k||0;d.V(6(){7 a=$(9);9.1f=(!(!l.1k||!l.F))?l.F:(a.F()||9.3c||9.F||a.21(\'F\')||0);9.1d=(!(!l.1k||!l.G))?l.G:(a.G()||9.3a||9.G||a.21(\'G\')||0);4(a.4i(\'3l\')){7 b=(!(!(9.1f===0)||!(9.1d===0)||9.4h));4(b){4(!(!o.s||!l.3n||!(++g.2k<4g))){W(g.2k,\' - 3l 2I 1a 4b, 49 1Z: \',9.3r,9.1d,9.1f);2V(6(){$(o.s,o.c).D(g)},l.3S);v=L;8 I}J{W(\'45 1a 44 43 42 41: \'+9.3r,9.1d,9.1f)}}}8 L});4(v)8 I;l.U=l.U||{};l.1e=l.1e||{};l.2D=l.2D||{};l.1m=l.1m||{};l.1n=l.1n||{};d.1a(\':2G(\'+q+\')\').P(l.U);$(d[q]).P(l.2D);4(l.S){l.S=27(l.S,10);4(l.Y.2U==34)l.Y=$.T.4M[l.Y]||27(l.Y,10);4(!l.2e)l.Y=l.Y/2;7 x=l.T==\'2J\'?0:l.T==\'2K\'?3Z:2M;3K((l.S-l.Y)<x)l.S+=l.Y}4(l.2N)l.1I=l.1L=l.2N;4(!l.22)l.22=l.Y;4(!l.1q)l.1q=l.Y;l.1r=f.E;l.N=l.2T=q;4(l.1b){4(++l.X==f.E)l.X=0;l.H=l.18[l.X]}J 4(l.13)l.H=l.Q===0?(f.E-1):l.Q-1;J l.H=l.Q>=(f.E-1)?0:l.Q+1;4(!l.1N){7 y=$.M.D.1Q[l.T];4($.1h(y))y(c,d,l);J 4(!(l.T==\'2W\'||l.1N)){W(\'3W 28: \'+l.T,\'; 1Z 1Y\');8 I}}7 A=d[q];4(!l.3E){4(l.12.E)l.12[0].2l(A,[A,A,l,L]);4(l.11.E)l.11[0].2l(A,[A,A,l,L])}4(l.O)$(l.O).1J(l.1O,6(){8 1K(l,1)});4(l.1w)$(l.1w).1J(l.1O,6(){8 1K(l,0)});4(l.1l||l.1D)3y(f,l);3w(l,f);8 l}6 39(a){a.17={12:[],11:[]};a.17.U=$.1i({},a.U);a.17.1e=$.1i({},a.1e);a.17.1m=$.1i({},a.1m);a.17.1n=$.1i({},a.1n);$.V(a.12,6(){a.17.12.Z(9)});$.V(a.11,6(){a.17.11.Z(9)})}6 3f(a){7 i,1u,1C=$.M.D.1Q;4(a.T.3t(\',\')>0){a.1N=L;a.14=a.T.47(/\\s*/g,\'\').48(\',\');1H(i=0;i<a.14.E;i++){7 b=a.14[i];1u=1C[b];4(!1u||!1C.2z(b)||!$.1h(1u)){W(\'4a 3W 28: \',b);a.14.3p(i,1);i--}}4(!a.14.E){W(\'4c 4d 1Q 4e; 1Z 1Y.\');8 I}}J 4(a.T==\'4f\'){a.1N=L;a.14=[];1H(7 p 3o 1C){4(1C.2z(p)){1u=1C[p];4(!(!1C.2z(p)||!$.1h(1u)))a.14.Z(p)}}}4(!(!a.1N||!a.3m)){7 c=1z.3k(1z.1b()*20)+30;1H(i=0;i<c;i++){7 d=1z.3k(1z.1b()*a.14.E);a.14.Z(a.14.3p(d,1)[0])}1j(\'4j T 4k: \',a.14)}8 L}6 3w(f,g){f.4l=6(c,d){7 e=$(c),s=e[0];4(!f.2A)f.3X++;g[d?\'3j\':\'Z\'](s);4(f.3i)f.3i[d?\'3j\':\'Z\'](s);f.1r=g.E;4(f.1b){f.18.Z(f.1r-1);f.18.2s(6(a,b){8 1z.1b()-0.5})}e.P(\'23\',\'3N\');e[d?\'4o\':\'3g\'](f.$1A);4(d){f.N++;f.H++}4(!($.1T.19||!f.1S||f.2w))2u(e);4(!(!f.1k||!f.G))e.G(f.G);4(!(!f.1k||!f.F||f.F==\'26\'))e.F(f.F);s.1f=(!(!f.1k||!f.F))?f.F:e.F();s.1d=(!(!f.1k||!f.G))?f.G:e.G();e.P(f.U);4(f.1l||f.1D)$.M.D.2v(g.E-1,s,$(f.1l),g,f);4($.1h(f.38))f.38(e);J e.2n()}}$.M.D.35=6(a,b){b=b||a.T;a.12=[];a.11=[];a.U=$.1i({},a.17.U);a.1e=$.1i({},a.17.1e);a.1m=$.1i({},a.17.1m);a.1n=$.1i({},a.17.1n);a.2b=K;$.V(a.17.12,6(){a.12.Z(9)});$.V(a.17.11,6(){a.11.Z(9)});7 c=$.M.D.1Q[b];4($.1h(c))c(a.$1A,$(a.1g),a)};6 1p(c,d,e,f){7 p=d.$1A[0],1c=c[d.N],O=c[d.H];4(!(!e||!d.1W||!d.2o)){1j(\'2o 3o 1p(), 4x 3D 28\');$(c).1X(L,L);d.1W=0;1B(p.R)}4(d.1W){1j(\'28 3D, 4z 4A 1u 4B\');8}7 g=I;4(!(!(e||!p.15)||!(d.H!=d.N))){g=L;7 h=d.T;1c.1f=1c.1f||$(1c).F();1c.1d=1c.1d||$(1c).G();O.1f=O.1f||$(O).F();O.1d=O.1d||$(O).G();4(d.1N){4(!(!f||!(d.1x===B||++d.1x>=d.14.E)))d.1x=0;J 4(!(f||!(d.1x===B||--d.1x<0)))d.1x=d.14.E-1;h=d.14[d.1x]}4(d.1P){h=d.1P;d.1P=K}$.M.D.35(d,h);4(d.12.E)$.V(d.12,6(i,o){4(p.1t!=d.2y)8;o.2l(O,[1c,O,d,f])});7 j=6(){d.1W=0;$.V(d.11,6(i,o){4(p.1t!=d.2y)8;o.2l(O,[1c,O,d,f])});4(!p.1t){2t()}};1j(\'1u 4E(\'+h+\'); N: \'+d.N+\'; H: \'+d.H);d.1W=1;4(d.2b)d.2b(1c,O,d,j,f,!(!e||!d.24));J 4($.1h($.M.D[d.T]))$.M.D[d.T](1c,O,d,j,f,!(!e||!d.24));J $.M.D.2W(1c,O,d,j,f,!(!e||!d.24))}J{2t()}4(g||d.H==d.N){7 k;d.2T=d.N;4(d.1b){d.N=d.H;4(++d.X==c.E){d.X=0;d.18.2s(6(a,b){8 1z.1b()-0.5})}d.H=d.18[d.X];4(d.H==d.N)d.H=(d.N==d.1r-1)?0:d.N+1}J 4(d.13){k=(d.H-1)<0;4(!(!k||!d.3e)){d.13=!d.13;d.H=1;d.N=0}J{d.H=k?(c.E-1):d.H-1;d.N=k?0:d.H+1}}J{k=(d.H+1)==c.E;4(!(!k||!d.3e)){d.13=!d.13;d.H=c.E-2;d.N=c.E-1}J{d.H=k?0:d.H+1;d.N=k?c.E-1:d.H-1}}}4(!(!g||!d.1l))d.1G(d.1l,d.N,d.2x);6 2t(){7 a=0,S=d.S;4(!(!d.S||d.1R)){a=2X(c[d.N],c[d.H],d,f);4(d.T==\'2K\')a-=d.1q}J 4(!(!d.1R||!p.15))a=10;4(a>0)p.R=2V(6(){1p(c,d,0,!d.13)},a)}}$.M.D.1G=6(a,b,c){$(a).V(6(){$(9).3F().4I(c).2G(b).4J(c)})};6 2X(a,b,c,d){4(c.2B){7 t=c.2B.36(a,a,b,c,d);3K(!(c.T==\'2J\'||!((t-c.Y)<2M)))t+=c.Y;1j(\'4L S: \'+t+\'; Y: \'+c.Y);4(t!==I)8 t}8 c.S}$.M.D.O=6(a){1K(a,1)};$.M.D.1w=6(a){1K(a,0)};6 1K(a,b){7 c=b?1:-1;7 d=a.1g;7 p=a.$1A[0],S=p.R;4(S){1B(S);p.R=0}4(!(!a.1b||!(c<0))){a.X--;4(--a.X==-2)a.X=d.E-2;J 4(a.X==-1)a.X=d.E-1;a.H=a.18[a.X]}J 4(a.1b){a.H=a.18[a.X]}J{a.H=a.N+c;4(a.H<0){4(a.2m)8 I;a.H=d.E-1}J 4(a.H>=d.E){4(a.2m)8 I;a.H=0}}7 e=a.3G||a.4O;4($.1h(e))e(c>0,a.H,d[a.H]);1p(d,a,1,b);8 I}6 3y(a,b){7 c=$(b.1l);$.V(a,6(i,o){$.M.D.2v(i,o,c,a,b)});b.1G(b.1l,b.Q,b.2x)}$.M.D.2v=6(i,b,c,d,f){7 a;4($.1h(f.1D)){a=f.1D(i,b);1j(\'1D(\'+i+\', 4P) 4Q: \'+a)}J a=\'<a 4R="#">\'+(i+1)+\'</a>\';4(!a)8;7 g=$(a);4(g.4S(\'4T\').E===0){7 h=[];4(c.E>1){c.V(6(){7 a=g.4U(L);$(9).4V(a);h.Z(a[0])});g=$(h)}J{g.3g(c)}}f.1U=f.1U||[];f.1U.Z(g);7 j=6(e){e.4W();f.H=i;7 p=f.$1A[0],S=p.R;4(S){1B(S);p.R=0}7 a=f.3s||f.4Y;4($.1h(a))a(f.H,d[f.H]);1p(d,f,1,f.N<i)};4(/2F|4Z/i.3q(f.29)){g.3d(j,6(){})}J{g.1J(f.29,j)}4(!(/^2i/.3q(f.29)||f.3H))g.1J(\'2i.D\',6(){8 I});7 k=f.$1A[0];7 l=I;4(f.3C){g.3d(6(){l=L;k.15++;1v(k,L,L)},6(){4(l)k.15--;1v(k,L,L)})}};$.M.D.56=6(a,b){7 d,l=a.2T,c=a.N;4(b)d=c>l?c-l:a.1r-l;J d=c<l?l-c:l+a.1r-c;8 d};6 2u(b){1j(\'57 58 2O-2Q 5b\');6 25(s){s=27(s,10).5d(16);8 s.E<2?\'0\'+s:s}6 3R(e){1H(;!(!e||e.5f.5g()==\'5h\');e=e.5i){7 v=$.P(e,\'2O-2Q\');4(v)4(v.3t(\'5j\')>=0){7 a=v.5k(/\\d+/g);8\'#\'+25(a[0])+25(a[1])+25(a[2])}4(v)4(v!=\'5l\')8 v}8\'#5m\'}b.V(6(){$(9).P(\'2O-2Q\',3R(9))})}$.M.D.3L=6(a,b,c,w,h,d){$(c.1g).1a(a).2n();4(2j c.U.19==\'5o\')c.U.19=1;c.U.3h=\'5q\';4(!(!c.2d||w===I||!(b.1d>0)))c.U.G=b.1d;4(!(!c.2d||h===I||!(b.1f>0)))c.U.F=b.1f;c.1e=c.1e||{};c.1e.3h=\'2J\';$(a).P(\'32\',c.1r+(d===L?1:0));$(b).P(\'32\',c.1r+(d===L?0:1))};$.M.D.2W=6(a,b,c,d,e,f){7 g=$(a),$n=$(b);7 h=c.22,1q=c.1q,1I=c.1I,1L=c.1L;$n.P(c.U);4(f){4(2j f==\'5s\')h=1q=f;J h=1q=1;1I=1L=K}7 i=6(){$n.3T(c.1m,h,1I,6(){d()})};g.3T(c.1n,1q,1L,6(){g.P(c.1e);4(!c.2e)i()});4(c.2e)i()};$.M.D.1Q={3x:6(d,e,f){e.1a(\':2G(\'+f.N+\')\').P(\'19\',0);f.12.Z(6(a,b,c){$.M.D.3L(a,b,c);c.U.19=0});f.1m={19:1};f.1n={19:0};f.U={2g:0,2h:0}}};$.M.D.5v=6(){8 C};$.M.D.3P={2x:\'5w\',11:K,3H:I,1m:K,1n:K,1V:I,3V:0,2A:0,13:I,12:K,2E:K,1S:!$.1T.19,2w:I,2q:1,2r:0,1R:0,1e:K,U:K,33:0,1I:K,1L:K,2N:K,5x:K,24:0,1k:0,T:\'3x\',2b:K,F:\'26\',2o:L,3U:\'D\',O:K,2m:0,3s:K,3G:K,1l:K,1D:K,29:\'2i.D\',2R:0,3C:0,1w:K,1O:\'2i.D\',1b:0,3m:1,3n:L,3S:2M,5y:0,2K:K,3E:I,2L:K,2d:1,Y:5z,22:K,1q:K,Q:B,2e:1,S:5A,2B:K,1G:K,G:K}})(5B);',62,348,'||||if||function|var|return|this||||||||||||||||||||||||||||||cycle|length|height|width|nextSlide|false|else|null|true|fn|currSlide|next|css|startingSlide|cycleTimeout|timeout|fx|cssBefore|each|log|randomIndex|speed|push||after|before|backwards|fxs|cyclePause||original|randomMap|opacity|not|random|curr|cycleW|cssAfter|cycleH|elements|isFunction|extend|debug|fit|pager|animIn|animOut|data|go|speedOut|slideCount|maxh|cycleStop|tx|triggerPause|prev|lastFx|case|Math|cont|clearTimeout|txs|pagerAnchorBuilder|opts|px|updateActivePagerLink|for|easeIn|bind|advance|easeOut|destroy|multiFx|prevNextEvent|oneTimeFx|transitions|continuous|cleartype|support|pagerAnchors|aspect|busy|stop|terminating|slideshow||attr|speedIn|position|fastOnEvent|hex|auto|parseInt|transition|pagerEvent|unbind|fxFn|found|slideResize|sync|margin|top|left|click|typeof|requeueAttempts|apply|nowrap|hide|manualTrump|paused|containerResize|containerResizeHeight|sort|queueNext|clearTypeFix|createPagerAnchor|cleartypeNoBg|activePagerClass|stopCount|hasOwnProperty|autostopCount|timeoutFn|console|cssFirst|center|mouseenter|eq|removeFilter|slide|none|shuffle|slideExpr|250|easing|background|options|color|pause|checkInstantResume|lastSlide|constructor|setTimeout|custom|getTimeout|index|resumed||resume|zIndex|delay|String|resetState|call|style|onAddSlide|saveOriginalOpts|offsetWidth|filter|offsetHeight|hover|bounce|supportMultiTransitions|appendTo|display|els|unshift|floor|img|randomizeEffects|requeueOnImageNotLoaded|in|splice|test|src|onPagerEvent|indexOf|ready|DOM|exposeAddSlide|fade|buildPager|isReady|string|buildOptions|pauseOnPagerHover|active|skipInitializationCallbacks|children|onPrevNextEvent|allowPagerClickBubble|mouseleave|selector|while|commonReset|handleArguments|absolute|can|defaults|metadata|getBg|requeueTimeout|animate|metaAttr|autostop|unknown|countdown|by|500|window|image|of|size|determine|could|strict|replace|split|requeuing|discarding|loaded|No|valid|named|all|100|complete|is|randomized|sequence|addSlide|Array|prototype|prependTo|join|outerHeight|outerWidth|arguments|innerHeight|use|show|expr|stopping|context|ignoring|new|request|startSlide|relative|firing|static|queuing|zero|removeClass|addClass|meta|calculated|speeds|remove|prevNextClick|el|returned|href|parents|body|clone|append|preventDefault|smother|pagerClick|mouseover|catch|removeAttribute|try|invalid|Number|default|hopsFromLast|applying|clearType|ignored|get|hack|too|toString|toggle|nodeName|toLowerCase|html|parentNode|rgb|match|transparent|ffffff|removeData|undefined|switch|block|few|number|slides|first|ver|activeSlide|end|rev|1000|4000|jQuery'.split('|'),0,{})) |
- | "use strict";
| + | |
- | | + | |
- | var ver = '3.0.2';
| + | |
- | | + | |
- | function debug(s) {
| + | |
- | if ($.fn.cycle.debug)
| + | |
- | log(s);
| + | |
- | }
| + | |
- | function log() {
| + | |
- | if (!(!window.console || !console.log))
| + | |
- | console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
| + | |
- | }
| + | |
- | $.expr[':'].paused = function(el) {
| + | |
- | return el.cyclePause;
| + | |
- | };
| + | |
- | | + | |
- | | + | |
- | // the options arg can be...
| + | |
- | // a number - indicates an immediate transition should occur to the given slide index
| + | |
- | // a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
| + | |
- | // an object - properties to control the slideshow
| + | |
- | //
| + | |
- | // the arg2 arg can be...
| + | |
- | // the name of an fx (only used in conjunction with a numeric value for 'options')
| + | |
- | // the value true (only used in first arg == 'resume') and indicates
| + | |
- | // that the resume should occur immediately (not wait for next timeout)
| + | |
- | | + | |
- | $.fn.cycle = function(options, arg2) {
| + | |
- | var o = { s: this.selector, c: this.context };
| + | |
- | | + | |
- | // in 1.3+ we can fix mistakes with the ready state
| + | |
- | if (!(!(this.length === 0) || options == 'stop')) {
| + | |
- | if (!($.isReady || !o.s)) {
| + | |
- | log('DOM not ready, queuing slideshow');
| + | |
- | $(function() {
| + | |
- | $(o.s,o.c).cycle(options,arg2);
| + | |
- | });
| + | |
- | return this;
| + | |
- | }
| + | |
- | // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
| + | |
- | log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
| + | |
- | return this;
| + | |
- | }
| + | |
- | | + | |
- | // iterate the matched nodeset
| + | |
- | return this.each(function() {
| + | |
- | var opts = handleArguments(this, options, arg2);
| + | |
- | if (opts === false)
| + | |
- | return;
| + | |
- | | + | |
- | opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;
| + | |
- |
| + | |
- | // stop existing slideshow for this container (if there is one)
| + | |
- | if (this.cycleTimeout)
| + | |
- | clearTimeout(this.cycleTimeout);
| + | |
- | this.cycleTimeout = this.cyclePause = 0;
| + | |
- | this.cycleStop = 0; // issue #108
| + | |
- | | + | |
- | var $cont = $(this);
| + | |
- | var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
| + | |
- | var els = $slides.get();
| + | |
- | | + | |
- | if (els.length < 2) {
| + | |
- | log('terminating; too few slides: ' + els.length);
| + | |
- | return;
| + | |
- | }
| + | |
- | | + | |
- | var opts2 = buildOptions($cont, $slides, els, opts, o);
| + | |
- | if (opts2 === false)
| + | |
- | return;
| + | |
- | | + | |
- | var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.backwards);
| + | |
- | | + | |
- | // if it's an auto slideshow, kick it off
| + | |
- | if (startTime) {
| + | |
- | startTime += (opts2.delay || 0);
| + | |
- | if (startTime < 10)
| + | |
- | startTime = 10;
| + | |
- | debug('first timeout: ' + startTime);
| + | |
- | this.cycleTimeout = setTimeout(function(){go(els,opts2,0,!opts.backwards);}, startTime);
| + | |
- | }
| + | |
- | });
| + | |
- | };
| + | |
- | | + | |
- | function triggerPause(cont, byHover, onPager) {
| + | |
- | var opts = $(cont).data('cycle.opts');
| + | |
- | if (!opts)
| + | |
- | return;
| + | |
- | var paused = !!cont.cyclePause;
| + | |
- | if (!(!paused || !opts.paused))
| + | |
- | opts.paused(cont, opts, byHover, onPager);
| + | |
- | else if (!(paused || !opts.resumed))
| + | |
- | opts.resumed(cont, opts, byHover, onPager);
| + | |
- | }
| + | |
- | | + | |
- | // process the args that were passed to the plugin fn
| + | |
- | function handleArguments(cont, options, arg2) {
| + | |
- | if (cont.cycleStop === undefined)
| + | |
- | cont.cycleStop = 0;
| + | |
- | if (options === undefined || options === null)
| + | |
- | options = {};
| + | |
- | if (options.constructor == String) {
| + | |
- | switch(options) {
| + | |
- | case 'destroy':
| + | |
- | case 'stop':
| + | |
- | var opts = $(cont).data('cycle.opts');
| + | |
- | if (!opts)
| + | |
- | return false;
| + | |
- | cont.cycleStop++; // callbacks look for change
| + | |
- | if (cont.cycleTimeout)
| + | |
- | clearTimeout(cont.cycleTimeout);
| + | |
- | cont.cycleTimeout = 0;
| + | |
- | if (opts.elements)
| + | |
- | $(opts.elements).stop();
| + | |
- | $(cont).removeData('cycle.opts');
| + | |
- | if (options == 'destroy')
| + | |
- | destroy(cont, opts);
| + | |
- | return false;
| + | |
- | case 'toggle':
| + | |
- | cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
| + | |
- | checkInstantResume(cont.cyclePause, arg2, cont);
| + | |
- | triggerPause(cont);
| + | |
- | return false;
| + | |
- | case 'pause':
| + | |
- | cont.cyclePause = 1;
| + | |
- | triggerPause(cont);
| + | |
- | return false;
| + | |
- | case 'resume':
| + | |
- | cont.cyclePause = 0;
| + | |
- | checkInstantResume(false, arg2, cont);
| + | |
- | triggerPause(cont);
| + | |
- | return false;
| + | |
- | case 'prev':
| + | |
- | case 'next':
| + | |
- | opts = $(cont).data('cycle.opts');
| + | |
- | if (!opts) {
| + | |
- | log('options not found, "prev/next" ignored');
| + | |
- | return false;
| + | |
- | }
| + | |
- | if (typeof arg2 == 'string')
| + | |
- | opts.oneTimeFx = arg2;
| + | |
- | $.fn.cycle[options](opts);
| + | |
- | return false;
| + | |
- | default:
| + | |
- | options = { fx: options };
| + | |
- | }
| + | |
- | return options;
| + | |
- | }
| + | |
- | else if (options.constructor == Number) {
| + | |
- | // go to the requested slide
| + | |
- | var num = options;
| + | |
- | options = $(cont).data('cycle.opts');
| + | |
- | if (!options) {
| + | |
- | log('options not found, can not advance slide');
| + | |
- | return false;
| + | |
- | }
| + | |
- | if (num < 0 || num >= options.elements.length) {
| + | |
- | log('invalid slide index: ' + num);
| + | |
- | return false;
| + | |
- | }
| + | |
- | options.nextSlide = num;
| + | |
- | if (cont.cycleTimeout) {
| + | |
- | clearTimeout(cont.cycleTimeout);
| + | |
- | cont.cycleTimeout = 0;
| + | |
- | }
| + | |
- | if (typeof arg2 == 'string')
| + | |
- | options.oneTimeFx = arg2;
| + | |
- | go(options.elements, options, 1, num >= options.currSlide);
| + | |
- | return false;
| + | |
- | }
| + | |
- | return options;
| + | |
- |
| + | |
- | function checkInstantResume(isPaused, arg2, cont) {
| + | |
- | if (!(isPaused || !(arg2 === true))) { // resume now!
| + | |
- | var options = $(cont).data('cycle.opts');
| + | |
- | if (!options) {
| + | |
- | log('options not found, can not resume');
| + | |
- | return false;
| + | |
- | }
| + | |
- | if (cont.cycleTimeout) {
| + | |
- | clearTimeout(cont.cycleTimeout);
| + | |
- | cont.cycleTimeout = 0;
| + | |
- | }
| + | |
- | go(options.elements, options, 1, !options.backwards);
| + | |
- | }
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | function removeFilter(el, opts) {
| + | |
- | if (!($.support.opacity || !opts.cleartype || !el.style.filter)) {
| + | |
- | try { el.style.removeAttribute('filter'); }
| + | |
- | catch(smother) {} // handle old opera versions
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | // unbind event handlers
| + | |
- | function destroy(cont, opts) {
| + | |
- | if (opts.next)
| + | |
- | $(opts.next).unbind(opts.prevNextEvent);
| + | |
- | if (opts.prev)
| + | |
- | $(opts.prev).unbind(opts.prevNextEvent);
| + | |
- |
| + | |
- | if (opts.pager || opts.pagerAnchorBuilder)
| + | |
- | $.each(opts.pagerAnchors || [], function() {
| + | |
- | this.unbind().remove();
| + | |
- | });
| + | |
- | opts.pagerAnchors = null;
| + | |
- | $(cont).unbind('mouseenter.cycle mouseleave.cycle');
| + | |
- | if (opts.destroy) // callback
| + | |
- | opts.destroy(opts);
| + | |
- | }
| + | |
- | | + | |
- | // one-time initialization
| + | |
- | function buildOptions($cont, $slides, els, options, o) {
| + | |
- | var startingSlideSpecified;
| + | |
- | // support metadata plugin (v1.0 and v2.0)
| + | |
- | var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
| + | |
- | var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null;
| + | |
- | if (meta)
| + | |
- | opts = $.extend(opts, meta);
| + | |
- | if (opts.autostop)
| + | |
- | opts.countdown = opts.autostopCount || els.length;
| + | |
- | | + | |
- | var cont = $cont[0];
| + | |
- | $cont.data('cycle.opts', opts);
| + | |
- | opts.$cont = $cont;
| + | |
- | opts.stopCount = cont.cycleStop;
| + | |
- | opts.elements = els;
| + | |
- | opts.before = opts.before ? [opts.before] : [];
| + | |
- | opts.after = opts.after ? [opts.after] : [];
| + | |
- | | + | |
- | // push some after callbacks
| + | |
- | if (!($.support.opacity || !opts.cleartype))
| + | |
- | opts.after.push(function() { removeFilter(this, opts); });
| + | |
- | if (opts.continuous)
| + | |
- | opts.after.push(function() { go(els,opts,0,!opts.backwards); });
| + | |
- | | + | |
- | saveOriginalOpts(opts);
| + | |
- | | + | |
- | // clearType corrections
| + | |
- | if (!($.support.opacity || !opts.cleartype || opts.cleartypeNoBg))
| + | |
- | clearTypeFix($slides);
| + | |
- | | + | |
- | // container requires non-static position so that slides can be position within
| + | |
- | if ($cont.css('position') == 'static')
| + | |
- | $cont.css('position', 'relative');
| + | |
- | if (opts.width)
| + | |
- | $cont.width(opts.width);
| + | |
- | if (!(!opts.height || opts.height == 'auto'))
| + | |
- | $cont.height(opts.height);
| + | |
- | | + | |
- | if (opts.startingSlide !== undefined) {
| + | |
- | opts.startingSlide = parseInt(opts.startingSlide,10);
| + | |
- | if (opts.startingSlide >= els.length || opts.startSlide < 0)
| + | |
- | opts.startingSlide = 0; // catch bogus input
| + | |
- | else
| + | |
- | startingSlideSpecified = true;
| + | |
- | }
| + | |
- | else if (opts.backwards)
| + | |
- | opts.startingSlide = els.length - 1;
| + | |
- | else
| + | |
- | opts.startingSlide = 0;
| + | |
- | | + | |
- | // if random, mix up the slide array
| + | |
- | if (opts.random) {
| + | |
- | opts.randomMap = [];
| + | |
- | for (var i = 0; i < els.length; i++)
| + | |
- | opts.randomMap.push(i);
| + | |
- | opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
| + | |
- | if (startingSlideSpecified) {
| + | |
- | // try to find the specified starting slide and if found set start slide index in the map accordingly
| + | |
- | for ( var cnt = 0; cnt < els.length; cnt++ ) {
| + | |
- | if ( opts.startingSlide == opts.randomMap[cnt] ) {
| + | |
- | opts.randomIndex = cnt;
| + | |
- | }
| + | |
- | }
| + | |
- | }
| + | |
- | else {
| + | |
- | opts.randomIndex = 1;
| + | |
- | opts.startingSlide = opts.randomMap[1];
| + | |
- | }
| + | |
- | }
| + | |
- | else if (opts.startingSlide >= els.length)
| + | |
- | opts.startingSlide = 0; // catch bogus input
| + | |
- | opts.currSlide = opts.startingSlide || 0;
| + | |
- | var first = opts.startingSlide;
| + | |
- | | + | |
- | // set position and zIndex on all the slides
| + | |
- | $slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
| + | |
- | var z;
| + | |
- | if (opts.backwards)
| + | |
- | z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
| + | |
- | else
| + | |
- | z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
| + | |
- | $(this).css('z-index', z);
| + | |
- | });
| + | |
- | | + | |
- | // make sure first slide is visible
| + | |
- | $(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
| + | |
- | removeFilter(els[first], opts);
| + | |
- | | + | |
- | // stretch slides
| + | |
- | if (opts.fit) {
| + | |
- | if (!opts.aspect) {
| + | |
- | if (opts.width)
| + | |
- | $slides.width(opts.width);
| + | |
- | if (!(!opts.height || opts.height == 'auto'))
| + | |
- | $slides.height(opts.height);
| + | |
- | } else {
| + | |
- | $slides.each(function(){
| + | |
- | var $slide = $(this);
| + | |
- | var ratio = (opts.aspect === true) ? $slide.width()/$slide.height() : opts.aspect;
| + | |
- | if( !(!opts.width || $slide.width() == opts.width )) {
| + | |
- | $slide.width( opts.width );
| + | |
- | $slide.height( opts.width / ratio );
| + | |
- | }
| + | |
- | | + | |
- | if( !(!opts.height || !($slide.height() < opts.height) )) {
| + | |
- | $slide.height( opts.height );
| + | |
- | $slide.width( opts.height * ratio );
| + | |
- | }
| + | |
- | });
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | if (!(!opts.center || !((!opts.fit) || opts.aspect))) {
| + | |
- | $slides.each(function(){
| + | |
- | var $slide = $(this);
| + | |
- | $slide.css({
| + | |
- | "margin-left": opts.width ?
| + | |
- | ((opts.width - $slide.width()) / 2) + "px" :
| + | |
- | 0,
| + | |
- | "margin-top": opts.height ?
| + | |
- | ((opts.height - $slide.height()) / 2) + "px" :
| + | |
- | 0
| + | |
- | });
| + | |
- | });
| + | |
- | }
| + | |
- | | + | |
- | if (!(!opts.center || opts.fit || opts.slideResize)) {
| + | |
- | $slides.each(function(){
| + | |
- | var $slide = $(this);
| + | |
- | $slide.css({
| + | |
- | "margin-left": opts.width ? ((opts.width - $slide.width()) / 2) + "px" : 0,
| + | |
- | "margin-top": opts.height ? ((opts.height - $slide.height()) / 2) + "px" : 0
| + | |
- | });
| + | |
- | });
| + | |
- | }
| + | |
- |
| + | |
- | // stretch container
| + | |
- | var reshape = !(!(opts.containerResize || opts.containerResizeHeight) || !($cont.innerHeight() < 1));
| + | |
- | if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
| + | |
- | var maxw = 0, maxh = 0;
| + | |
- | for(var j=0; j < els.length; j++) {
| + | |
- | var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
| + | |
- | if (!w) w = e.offsetWidth || e.width || $e.attr('width');
| + | |
- | if (!h) h = e.offsetHeight || e.height || $e.attr('height');
| + | |
- | maxw = w > maxw ? w : maxw;
| + | |
- | maxh = h > maxh ? h : maxh;
| + | |
- | }
| + | |
- | if (!(!opts.containerResize || !( maxw > 0 ) || !( maxh > 0 )))
| + | |
- | $cont.css({width:maxw+'px',height:maxh+'px'});
| + | |
- | if (!(!opts.containerResizeHeight || !( maxh > 0 )))
| + | |
- | $cont.css({height:maxh+'px'});
| + | |
- | }
| + | |
- | | + | |
- | var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
| + | |
- | if (opts.pause)
| + | |
- | $cont.bind('mouseenter.cycle', function(){
| + | |
- | pauseFlag = true;
| + | |
- | this.cyclePause++;
| + | |
- | triggerPause(cont, true);
| + | |
- | }).bind('mouseleave.cycle', function(){
| + | |
- | if (pauseFlag)
| + | |
- | this.cyclePause--;
| + | |
- | triggerPause(cont, true);
| + | |
- | });
| + | |
- | | + | |
- | if (supportMultiTransitions(opts) === false)
| + | |
- | return false;
| + | |
- | | + | |
- | // apparently a lot of people use image slideshows without height/width attributes on the images.
| + | |
- | // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
| + | |
- | var requeue = false;
| + | |
- | options.requeueAttempts = options.requeueAttempts || 0;
| + | |
- | $slides.each(function() {
| + | |
- | // try to get height/width of each slide
| + | |
- | var $el = $(this);
| + | |
- | this.cycleH = (!(!opts.fit || !opts.height)) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
| + | |
- | this.cycleW = (!(!opts.fit || !opts.width)) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
| + | |
- | | + | |
- | if ( $el.is('img') ) {
| + | |
- | var loading = (!(!(this.cycleH === 0) || !(this.cycleW === 0) || this.complete));
| + | |
- | // don't requeue for images that are still loading but have a valid size
| + | |
- | if (loading) {
| + | |
- | if (!(!o.s || !opts.requeueOnImageNotLoaded || !(++options.requeueAttempts < 100))) { // track retry count so we don't loop forever
| + | |
- | log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
| + | |
- | setTimeout(function() {$(o.s,o.c).cycle(options);}, opts.requeueTimeout);
| + | |
- | requeue = true;
| + | |
- | return false; // break each loop
| + | |
- | }
| + | |
- | else {
| + | |
- | log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
| + | |
- | }
| + | |
- | }
| + | |
- | }
| + | |
- | return true;
| + | |
- | });
| + | |
- | | + | |
- | if (requeue)
| + | |
- | return false;
| + | |
- | | + | |
- | opts.cssBefore = opts.cssBefore || {};
| + | |
- | opts.cssAfter = opts.cssAfter || {};
| + | |
- | opts.cssFirst = opts.cssFirst || {};
| + | |
- | opts.animIn = opts.animIn || {};
| + | |
- | opts.animOut = opts.animOut || {};
| + | |
- | | + | |
- | $slides.not(':eq('+first+')').css(opts.cssBefore);
| + | |
- | $($slides[first]).css(opts.cssFirst);
| + | |
- | | + | |
- | if (opts.timeout) {
| + | |
- | opts.timeout = parseInt(opts.timeout,10);
| + | |
- | // ensure that timeout and speed settings are sane
| + | |
- | if (opts.speed.constructor == String)
| + | |
- | opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed,10);
| + | |
- | if (!opts.sync)
| + | |
- | opts.speed = opts.speed / 2;
| + | |
- |
| + | |
- | var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
| + | |
- | while((opts.timeout - opts.speed) < buffer) // sanitize timeout
| + | |
- | opts.timeout += opts.speed;
| + | |
- | }
| + | |
- | if (opts.easing)
| + | |
- | opts.easeIn = opts.easeOut = opts.easing;
| + | |
- | if (!opts.speedIn)
| + | |
- | opts.speedIn = opts.speed;
| + | |
- | if (!opts.speedOut)
| + | |
- | opts.speedOut = opts.speed;
| + | |
- | | + | |
- | opts.slideCount = els.length;
| + | |
- | opts.currSlide = opts.lastSlide = first;
| + | |
- | if (opts.random) {
| + | |
- | if (++opts.randomIndex == els.length)
| + | |
- | opts.randomIndex = 0;
| + | |
- | opts.nextSlide = opts.randomMap[opts.randomIndex];
| + | |
- | }
| + | |
- | else if (opts.backwards)
| + | |
- | opts.nextSlide = opts.startingSlide === 0 ? (els.length-1) : opts.startingSlide-1;
| + | |
- | else
| + | |
- | opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
| + | |
- | | + | |
- | // run transition init fn
| + | |
- | if (!opts.multiFx) {
| + | |
- | var init = $.fn.cycle.transitions[opts.fx];
| + | |
- | if ($.isFunction(init))
| + | |
- | init($cont, $slides, opts);
| + | |
- | else if (!(opts.fx == 'custom' || opts.multiFx)) {
| + | |
- | log('unknown transition: ' + opts.fx,'; slideshow terminating');
| + | |
- | return false;
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | // fire artificial events
| + | |
- | var e0 = $slides[first];
| + | |
- | if (!opts.skipInitializationCallbacks) {
| + | |
- | if (opts.before.length)
| + | |
- | opts.before[0].apply(e0, [e0, e0, opts, true]);
| + | |
- | if (opts.after.length)
| + | |
- | opts.after[0].apply(e0, [e0, e0, opts, true]);
| + | |
- | }
| + | |
- | if (opts.next)
| + | |
- | $(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);});
| + | |
- | if (opts.prev)
| + | |
- | $(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);});
| + | |
- | if (opts.pager || opts.pagerAnchorBuilder)
| + | |
- | buildPager(els,opts);
| + | |
- | | + | |
- | exposeAddSlide(opts, els);
| + | |
- | | + | |
- | return opts;
| + | |
- | }
| + | |
- | | + | |
- | // save off original opts so we can restore after clearing state
| + | |
- | function saveOriginalOpts(opts) {
| + | |
- | opts.original = { before: [], after: [] };
| + | |
- | opts.original.cssBefore = $.extend({}, opts.cssBefore);
| + | |
- | opts.original.cssAfter = $.extend({}, opts.cssAfter);
| + | |
- | opts.original.animIn = $.extend({}, opts.animIn);
| + | |
- | opts.original.animOut = $.extend({}, opts.animOut);
| + | |
- | $.each(opts.before, function() { opts.original.before.push(this); });
| + | |
- | $.each(opts.after, function() { opts.original.after.push(this); });
| + | |
- | }
| + | |
- | | + | |
- | function supportMultiTransitions(opts) {
| + | |
- | var i, tx, txs = $.fn.cycle.transitions;
| + | |
- | // look for multiple effects
| + | |
- | if (opts.fx.indexOf(',') > 0) {
| + | |
- | opts.multiFx = true;
| + | |
- | opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
| + | |
- | // discard any bogus effect names
| + | |
- | for (i=0; i < opts.fxs.length; i++) {
| + | |
- | var fx = opts.fxs[i];
| + | |
- | tx = txs[fx];
| + | |
- | if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
| + | |
- | log('discarding unknown transition: ',fx);
| + | |
- | opts.fxs.splice(i,1);
| + | |
- | i--;
| + | |
- | }
| + | |
- | }
| + | |
- | // if we have an empty list then we threw everything away!
| + | |
- | if (!opts.fxs.length) {
| + | |
- | log('No valid transitions named; slideshow terminating.');
| + | |
- | return false;
| + | |
- | }
| + | |
- | }
| + | |
- | else if (opts.fx == 'all') { // auto-gen the list of transitions
| + | |
- | opts.multiFx = true;
| + | |
- | opts.fxs = [];
| + | |
- | for (var p in txs) {
| + | |
- | if (txs.hasOwnProperty(p)) {
| + | |
- | tx = txs[p];
| + | |
- | if (!(!txs.hasOwnProperty(p) || !$.isFunction(tx)))
| + | |
- | opts.fxs.push(p);
| + | |
- | }
| + | |
- | }
| + | |
- | }
| + | |
- | if (!(!opts.multiFx || !opts.randomizeEffects)) {
| + | |
- | // munge the fxs array to make effect selection random
| + | |
- | var r1 = Math.floor(Math.random() * 20) + 30;
| + | |
- | for (i = 0; i < r1; i++) {
| + | |
- | var r2 = Math.floor(Math.random() * opts.fxs.length);
| + | |
- | opts.fxs.push(opts.fxs.splice(r2,1)[0]);
| + | |
- | }
| + | |
- | debug('randomized fx sequence: ',opts.fxs);
| + | |
- | }
| + | |
- | return true;
| + | |
- | }
| + | |
- | | + | |
- | // provide a mechanism for adding slides after the slideshow has started
| + | |
- | function exposeAddSlide(opts, els) {
| + | |
- | opts.addSlide = function(newSlide, prepend) {
| + | |
- | var $s = $(newSlide), s = $s[0];
| + | |
- | if (!opts.autostopCount)
| + | |
- | opts.countdown++;
| + | |
- | els[prepend?'unshift':'push'](s);
| + | |
- | if (opts.els)
| + | |
- | opts.els[prepend?'unshift':'push'](s); // shuffle needs this
| + | |
- | opts.slideCount = els.length;
| + | |
- | | + | |
- | // add the slide to the random map and resort
| + | |
- | if (opts.random) {
| + | |
- | opts.randomMap.push(opts.slideCount-1);
| + | |
- | opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
| + | |
- | }
| + | |
- | | + | |
- | $s.css('position','absolute');
| + | |
- | $s[prepend?'prependTo':'appendTo'](opts.$cont);
| + | |
- | | + | |
- | if (prepend) {
| + | |
- | opts.currSlide++;
| + | |
- | opts.nextSlide++;
| + | |
- | }
| + | |
- | | + | |
- | if (!($.support.opacity || !opts.cleartype || opts.cleartypeNoBg))
| + | |
- | clearTypeFix($s);
| + | |
- | | + | |
- | if (!(!opts.fit || !opts.width))
| + | |
- | $s.width(opts.width);
| + | |
- | if (!(!opts.fit || !opts.height || opts.height == 'auto'))
| + | |
- | $s.height(opts.height);
| + | |
- | s.cycleH = (!(!opts.fit || !opts.height)) ? opts.height : $s.height();
| + | |
- | s.cycleW = (!(!opts.fit || !opts.width)) ? opts.width : $s.width();
| + | |
- | | + | |
- | $s.css(opts.cssBefore);
| + | |
- | | + | |
- | if (opts.pager || opts.pagerAnchorBuilder)
| + | |
- | $.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
| + | |
- | | + | |
- | if ($.isFunction(opts.onAddSlide))
| + | |
- | opts.onAddSlide($s);
| + | |
- | else
| + | |
- | $s.hide(); // default behavior
| + | |
- | };
| + | |
- | }
| + | |
- | | + | |
- | // reset internal state; we do this on every pass in order to support multiple effects
| + | |
- | $.fn.cycle.resetState = function(opts, fx) {
| + | |
- | fx = fx || opts.fx;
| + | |
- | opts.before = []; opts.after = [];
| + | |
- | opts.cssBefore = $.extend({}, opts.original.cssBefore);
| + | |
- | opts.cssAfter = $.extend({}, opts.original.cssAfter);
| + | |
- | opts.animIn = $.extend({}, opts.original.animIn);
| + | |
- | opts.animOut = $.extend({}, opts.original.animOut);
| + | |
- | opts.fxFn = null;
| + | |
- | $.each(opts.original.before, function() { opts.before.push(this); });
| + | |
- | $.each(opts.original.after, function() { opts.after.push(this); });
| + | |
- | | + | |
- | // re-init
| + | |
- | var init = $.fn.cycle.transitions[fx];
| + | |
- | if ($.isFunction(init))
| + | |
- | init(opts.$cont, $(opts.elements), opts);
| + | |
- | };
| + | |
- | | + | |
- | // this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
| + | |
- | function go(els, opts, manual, fwd) {
| + | |
- | var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
| + | |
- | | + | |
- | // opts.busy is true if we're in the middle of an animation
| + | |
- | if (!(!manual || !opts.busy || !opts.manualTrump)) {
| + | |
- | // let manual transitions requests trump active ones
| + | |
- | debug('manualTrump in go(), stopping active transition');
| + | |
- | $(els).stop(true,true);
| + | |
- | opts.busy = 0;
| + | |
- | clearTimeout(p.cycleTimeout);
| + | |
- | }
| + | |
- | | + | |
- | // don't begin another timeout-based transition if there is one active
| + | |
- | if (opts.busy) {
| + | |
- | debug('transition active, ignoring new tx request');
| + | |
- | return;
| + | |
- | }
| + | |
- | | + | |
- | // if slideshow is paused, only transition on a manual trigger
| + | |
- | var changed = false;
| + | |
- | if (!(!(manual || !p.cyclePause) || !(opts.nextSlide != opts.currSlide))) {
| + | |
- | changed = true;
| + | |
- | var fx = opts.fx;
| + | |
- | // keep trying to get the slide size if we don't have it yet
| + | |
- | curr.cycleH = curr.cycleH || $(curr).height();
| + | |
- | curr.cycleW = curr.cycleW || $(curr).width();
| + | |
- | next.cycleH = next.cycleH || $(next).height();
| + | |
- | next.cycleW = next.cycleW || $(next).width();
| + | |
- | | + | |
- | // support multiple transition types
| + | |
- | if (opts.multiFx) {
| + | |
- | if (!(!fwd || !(opts.lastFx === undefined || ++opts.lastFx >= opts.fxs.length)))
| + | |
- | opts.lastFx = 0;
| + | |
- | else if (!(fwd || !(opts.lastFx === undefined || --opts.lastFx < 0)))
| + | |
- | opts.lastFx = opts.fxs.length - 1;
| + | |
- | fx = opts.fxs[opts.lastFx];
| + | |
- | }
| + | |
- | | + | |
- | // one-time fx overrides apply to: $('div').cycle(3,'zoom');
| + | |
- | if (opts.oneTimeFx) {
| + | |
- | fx = opts.oneTimeFx;
| + | |
- | opts.oneTimeFx = null;
| + | |
- | }
| + | |
- | | + | |
- | $.fn.cycle.resetState(opts, fx);
| + | |
- | | + | |
- | // run the before callbacks
| + | |
- | if (opts.before.length)
| + | |
- | $.each(opts.before, function(i,o) {
| + | |
- | if (p.cycleStop != opts.stopCount) return;
| + | |
- | o.apply(next, [curr, next, opts, fwd]);
| + | |
- | });
| + | |
- | | + | |
- | // stage the after callacks
| + | |
- | var after = function() {
| + | |
- | opts.busy = 0;
| + | |
- | $.each(opts.after, function(i,o) {
| + | |
- | if (p.cycleStop != opts.stopCount) return;
| + | |
- | o.apply(next, [curr, next, opts, fwd]);
| + | |
- | });
| + | |
- | if (!p.cycleStop) {
| + | |
- | // queue next transition
| + | |
- | queueNext();
| + | |
- | }
| + | |
- | };
| + | |
- | | + | |
- | debug('tx firing('+fx+'); currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
| + | |
- |
| + | |
- | // get ready to perform the transition
| + | |
- | opts.busy = 1;
| + | |
- | if (opts.fxFn) // fx function provided?
| + | |
- | opts.fxFn(curr, next, opts, after, fwd, !(!manual || !opts.fastOnEvent));
| + | |
- | else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
| + | |
- | $.fn.cycle[opts.fx](curr, next, opts, after, fwd, !(!manual || !opts.fastOnEvent));
| + | |
- | else
| + | |
- | $.fn.cycle.custom(curr, next, opts, after, fwd, !(!manual || !opts.fastOnEvent));
| + | |
- | }
| + | |
- | else {
| + | |
- | queueNext();
| + | |
- | }
| + | |
- | | + | |
- | if (changed || opts.nextSlide == opts.currSlide) {
| + | |
- | // calculate the next slide
| + | |
- | var roll;
| + | |
- | opts.lastSlide = opts.currSlide;
| + | |
- | if (opts.random) {
| + | |
- | opts.currSlide = opts.nextSlide;
| + | |
- | if (++opts.randomIndex == els.length) {
| + | |
- | opts.randomIndex = 0;
| + | |
- | opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
| + | |
- | }
| + | |
- | opts.nextSlide = opts.randomMap[opts.randomIndex];
| + | |
- | if (opts.nextSlide == opts.currSlide)
| + | |
- | opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
| + | |
- | }
| + | |
- | else if (opts.backwards) {
| + | |
- | roll = (opts.nextSlide - 1) < 0;
| + | |
- | if (!(!roll || !opts.bounce)) {
| + | |
- | opts.backwards = !opts.backwards;
| + | |
- | opts.nextSlide = 1;
| + | |
- | opts.currSlide = 0;
| + | |
- | }
| + | |
- | else {
| + | |
- | opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
| + | |
- | opts.currSlide = roll ? 0 : opts.nextSlide+1;
| + | |
- | }
| + | |
- | }
| + | |
- | else { // sequence
| + | |
- | roll = (opts.nextSlide + 1) == els.length;
| + | |
- | if (!(!roll || !opts.bounce)) {
| + | |
- | opts.backwards = !opts.backwards;
| + | |
- | opts.nextSlide = els.length-2;
| + | |
- | opts.currSlide = els.length-1;
| + | |
- | }
| + | |
- | else {
| + | |
- | opts.nextSlide = roll ? 0 : opts.nextSlide+1;
| + | |
- | opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
| + | |
- | }
| + | |
- | }
| + | |
- | }
| + | |
- | if (!(!changed || !opts.pager))
| + | |
- | opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
| + | |
- |
| + | |
- | function queueNext() {
| + | |
- | // stage the next transition
| + | |
- | var ms = 0, timeout = opts.timeout;
| + | |
- | if (!(!opts.timeout || opts.continuous)) {
| + | |
- | ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
| + | |
- | if (opts.fx == 'shuffle')
| + | |
- | ms -= opts.speedOut;
| + | |
- | }
| + | |
- | else if (!(!opts.continuous || !p.cyclePause)) // continuous shows work off an after callback, not this timer logic
| + | |
- | ms = 10;
| + | |
- | if (ms > 0)
| + | |
- | p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, !opts.backwards); }, ms);
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | // invoked after transition
| + | |
- | $.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
| + | |
- | $(pager).each(function() {
| + | |
- | $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
| + | |
- | });
| + | |
- | };
| + | |
- | | + | |
- | // calculate timeout value for current transition
| + | |
- | function getTimeout(curr, next, opts, fwd) {
| + | |
- | if (opts.timeoutFn) {
| + | |
- | // call user provided calc fn
| + | |
- | var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
| + | |
- | while (!(opts.fx == 'none' || !((t - opts.speed) < 250))) // sanitize timeout
| + | |
- | t += opts.speed;
| + | |
- | debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
| + | |
- | if (t !== false)
| + | |
- | return t;
| + | |
- | }
| + | |
- | return opts.timeout;
| + | |
- | }
| + | |
- | | + | |
- | // expose next/prev function, caller must pass in state
| + | |
- | $.fn.cycle.next = function(opts) { advance(opts,1); };
| + | |
- | $.fn.cycle.prev = function(opts) { advance(opts,0);};
| + | |
- | | + | |
- | // advance slide forward or back
| + | |
- | function advance(opts, moveForward) {
| + | |
- | var val = moveForward ? 1 : -1;
| + | |
- | var els = opts.elements;
| + | |
- | var p = opts.$cont[0], timeout = p.cycleTimeout;
| + | |
- | if (timeout) {
| + | |
- | clearTimeout(timeout);
| + | |
- | p.cycleTimeout = 0;
| + | |
- | }
| + | |
- | if (!(!opts.random || !(val < 0))) {
| + | |
- | // move back to the previously display slide
| + | |
- | opts.randomIndex--;
| + | |
- | if (--opts.randomIndex == -2)
| + | |
- | opts.randomIndex = els.length-2;
| + | |
- | else if (opts.randomIndex == -1)
| + | |
- | opts.randomIndex = els.length-1;
| + | |
- | opts.nextSlide = opts.randomMap[opts.randomIndex];
| + | |
- | }
| + | |
- | else if (opts.random) {
| + | |
- | opts.nextSlide = opts.randomMap[opts.randomIndex];
| + | |
- | }
| + | |
- | else {
| + | |
- | opts.nextSlide = opts.currSlide + val;
| + | |
- | if (opts.nextSlide < 0) {
| + | |
- | if (opts.nowrap) return false;
| + | |
- | opts.nextSlide = els.length - 1;
| + | |
- | }
| + | |
- | else if (opts.nextSlide >= els.length) {
| + | |
- | if (opts.nowrap) return false;
| + | |
- | opts.nextSlide = 0;
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
| + | |
- | if ($.isFunction(cb))
| + | |
- | cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
| + | |
- | go(els, opts, 1, moveForward);
| + | |
- | return false;
| + | |
- | }
| + | |
- | | + | |
- | function buildPager(els, opts) {
| + | |
- | var $p = $(opts.pager);
| + | |
- | $.each(els, function(i,o) {
| + | |
- | $.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
| + | |
- | });
| + | |
- | opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
| + | |
- | }
| + | |
- | | + | |
- | $.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
| + | |
- | var a;
| + | |
- | if ($.isFunction(opts.pagerAnchorBuilder)) {
| + | |
- | a = opts.pagerAnchorBuilder(i,el);
| + | |
- | debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
| + | |
- | }
| + | |
- | else
| + | |
- | a = '<a href="#">'+(i+1)+'</a>';
| + | |
- |
| + | |
- | if (!a)
| + | |
- | return;
| + | |
- | var $a = $(a);
| + | |
- | // don't reparent if anchor is in the dom
| + | |
- | if ($a.parents('body').length === 0) {
| + | |
- | var arr = [];
| + | |
- | if ($p.length > 1) {
| + | |
- | $p.each(function() {
| + | |
- | var $clone = $a.clone(true);
| + | |
- | $(this).append($clone);
| + | |
- | arr.push($clone[0]);
| + | |
- | });
| + | |
- | $a = $(arr);
| + | |
- | }
| + | |
- | else {
| + | |
- | $a.appendTo($p);
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | opts.pagerAnchors = opts.pagerAnchors || [];
| + | |
- | opts.pagerAnchors.push($a);
| + | |
- |
| + | |
- | var pagerFn = function(e) {
| + | |
- | e.preventDefault();
| + | |
- | opts.nextSlide = i;
| + | |
- | var p = opts.$cont[0], timeout = p.cycleTimeout;
| + | |
- | if (timeout) {
| + | |
- | clearTimeout(timeout);
| + | |
- | p.cycleTimeout = 0;
| + | |
- | }
| + | |
- | var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
| + | |
- | if ($.isFunction(cb))
| + | |
- | cb(opts.nextSlide, els[opts.nextSlide]);
| + | |
- | go(els,opts,1,opts.currSlide < i); // trigger the trans
| + | |
- | // return false; // <== allow bubble
| + | |
- | };
| + | |
- |
| + | |
- | if ( /mouseenter|mouseover/i.test(opts.pagerEvent) ) {
| + | |
- | $a.hover(pagerFn, function(){/* no-op */} );
| + | |
- | }
| + | |
- | else {
| + | |
- | $a.bind(opts.pagerEvent, pagerFn);
| + | |
- | }
| + | |
- |
| + | |
- | if ( !( /^click/.test(opts.pagerEvent) || opts.allowPagerClickBubble))
| + | |
- | $a.bind('click.cycle', function(){return false;}); // suppress click
| + | |
- |
| + | |
- | var cont = opts.$cont[0];
| + | |
- | var pauseFlag = false; // https://github.com/malsup/cycle/issues/44
| + | |
- | if (opts.pauseOnPagerHover) {
| + | |
- | $a.hover(
| + | |
- | function() {
| + | |
- | pauseFlag = true;
| + | |
- | cont.cyclePause++;
| + | |
- | triggerPause(cont,true,true);
| + | |
- | }, function() {
| + | |
- | if (pauseFlag)
| + | |
- | cont.cyclePause--;
| + | |
- | triggerPause(cont,true,true);
| + | |
- | }
| + | |
- | );
| + | |
- | }
| + | |
- | };
| + | |
- | | + | |
- | // helper fn to calculate the number of slides between the current and the next
| + | |
- | $.fn.cycle.hopsFromLast = function(opts, fwd) {
| + | |
- | var hops, l = opts.lastSlide, c = opts.currSlide;
| + | |
- | if (fwd)
| + | |
- | hops = c > l ? c - l : opts.slideCount - l;
| + | |
- | else
| + | |
- | hops = c < l ? l - c : l + opts.slideCount - c;
| + | |
- | return hops;
| + | |
- | };
| + | |
- | | + | |
- | // fix clearType problems in ie6 by setting an explicit bg color
| + | |
- | // (otherwise text slides look horrible during a fade transition)
| + | |
- | function clearTypeFix($slides) {
| + | |
- | debug('applying clearType background-color hack');
| + | |
- | function hex(s) {
| + | |
- | s = parseInt(s,10).toString(16);
| + | |
- | return s.length < 2 ? '0'+s : s;
| + | |
- | }
| + | |
- | function getBg(e) {
| + | |
- | for ( ; !(!e || e.nodeName.toLowerCase() == 'html'); e = e.parentNode) {
| + | |
- | var v = $.css(e,'background-color');
| + | |
- | if (v)if( v.indexOf('rgb') >= 0 ) {
| + | |
- | var rgb = v.match(/\d+/g);
| + | |
- | return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
| + | |
- | }
| + | |
- | if (v)
| + | |
- | if(v != 'transparent')
| + | |
- | return v;
| + | |
- | }
| + | |
- | return '#ffffff';
| + | |
- | }
| + | |
- | $slides.each(function() { $(this).css('background-color', getBg(this)); });
| + | |
- | }
| + | |
- | | + | |
- | // reset common props before the next transition
| + | |
- | $.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
| + | |
- | $(opts.elements).not(curr).hide();
| + | |
- | if (typeof opts.cssBefore.opacity == 'undefined')
| + | |
- | opts.cssBefore.opacity = 1;
| + | |
- | opts.cssBefore.display = 'block';
| + | |
- | if (!(!opts.slideResize || w === false || !(next.cycleW > 0)))
| + | |
- | opts.cssBefore.width = next.cycleW;
| + | |
- | if (!(!opts.slideResize || h === false || !(next.cycleH > 0)))
| + | |
- | opts.cssBefore.height = next.cycleH;
| + | |
- | opts.cssAfter = opts.cssAfter || {};
| + | |
- | opts.cssAfter.display = 'none';
| + | |
- | $(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
| + | |
- | $(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
| + | |
- | };
| + | |
- | | + | |
- | // the actual fn for effecting a transition
| + | |
- | $.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
| + | |
- | var $l = $(curr), $n = $(next);
| + | |
- | var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
| + | |
- | $n.css(opts.cssBefore);
| + | |
- | if (speedOverride) {
| + | |
- | if (typeof speedOverride == 'number')
| + | |
- | speedIn = speedOut = speedOverride;
| + | |
- | else
| + | |
- | speedIn = speedOut = 1;
| + | |
- | easeIn = easeOut = null;
| + | |
- | }
| + | |
- | var fn = function() {
| + | |
- | $n.animate(opts.animIn, speedIn, easeIn, function() {
| + | |
- | cb();
| + | |
- | });
| + | |
- | };
| + | |
- | $l.animate(opts.animOut, speedOut, easeOut, function() {
| + | |
- | $l.css(opts.cssAfter);
| + | |
- | if (!opts.sync)
| + | |
- | fn();
| + | |
- | });
| + | |
- | if (opts.sync) fn();
| + | |
- | };
| + | |
- | | + | |
- | // transition definitions - only fade is defined here, transition pack defines the rest
| + | |
- | $.fn.cycle.transitions = {
| + | |
- | fade: function($cont, $slides, opts) {
| + | |
- | $slides.not(':eq('+opts.currSlide+')').css('opacity',0);
| + | |
- | opts.before.push(function(curr,next,opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.cssBefore.opacity = 0;
| + | |
- | });
| + | |
- | opts.animIn = { opacity: 1 };
| + | |
- | opts.animOut = { opacity: 0 };
| + | |
- | opts.cssBefore = { top: 0, left: 0 };
| + | |
- | }
| + | |
- | };
| + | |
- | | + | |
- | $.fn.cycle.ver = function() { return ver; };
| + | |
- | | + | |
- | // override these globally if you like (they are all optional)
| + | |
- | $.fn.cycle.defaults = {
| + | |
- | activePagerClass: 'activeSlide', // class name used for the active pager link
| + | |
- | after: null, // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
| + | |
- | allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
| + | |
- | animIn: null, // properties that define how the slide animates in
| + | |
- | animOut: null, // properties that define how the slide animates out
| + | |
- | aspect: false, // preserve aspect ratio during fit resizing, cropping if necessary (must be used with fit option)
| + | |
- | autostop: 0, // true to end slideshow after X transitions (where X == slide count)
| + | |
- | autostopCount: 0, // number of transitions (optionally used with autostop to define X)
| + | |
- | backwards: false, // true to start slideshow at last slide and move backwards through the stack
| + | |
- | before: null, // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
| + | |
- | center: null, // set to true to have cycle add top/left margin to each slide (use with width and height options)
| + | |
- | cleartype: !$.support.opacity, // true if clearType corrections should be applied (for IE)
| + | |
- | cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
| + | |
- | containerResize: 1, // resize container to fit largest slide
| + | |
- | containerResizeHeight: 0, // resize containers height to fit the largest slide but leave the width dynamic
| + | |
- | continuous: 0, // true to start next transition immediately after current one completes
| + | |
- | cssAfter: null, // properties that defined the state of the slide after transitioning out
| + | |
- | cssBefore: null, // properties that define the initial state of the slide before transitioning in
| + | |
- | delay: 0, // additional delay (in ms) for first transition (hint: can be negative)
| + | |
- | easeIn: null, // easing for "in" transition
| + | |
- | easeOut: null, // easing for "out" transition
| + | |
- | easing: null, // easing method for both in and out transitions
| + | |
- | end: null, // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
| + | |
- | fastOnEvent: 0, // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
| + | |
- | fit: 0, // force slides to fit container
| + | |
- | fx: 'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
| + | |
- | fxFn: null, // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
| + | |
- | height: 'auto', // container height (if the 'fit' option is true, the slides will be set to this height as well)
| + | |
- | manualTrump: true, // causes manual transition to stop an active transition instead of being ignored
| + | |
- | metaAttr: 'cycle', // data- attribute that holds the option data for the slideshow
| + | |
- | next: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide
| + | |
- | nowrap: 0, // true to prevent slideshow from wrapping
| + | |
- | onPagerEvent: null, // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
| + | |
- | onPrevNextEvent: null, // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
| + | |
- | pager: null, // element, jQuery object, or jQuery selector string for the element to use as pager container
| + | |
- | pagerAnchorBuilder: null, // callback fn for building anchor links: function(index, DOMelement)
| + | |
- | pagerEvent: 'click.cycle', // name of event which drives the pager navigation
| + | |
- | pause: 0, // true to enable "pause on hover"
| + | |
- | pauseOnPagerHover: 0, // true to pause when hovering over pager link
| + | |
- | prev: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide
| + | |
- | prevNextEvent: 'click.cycle',// event which drives the manual transition to the previous or next slide
| + | |
- | random: 0, // true for random, false for sequence (not applicable to shuffle fx)
| + | |
- | randomizeEffects: 1, // valid when multiple effects are used; true to make the effect sequence random
| + | |
- | requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
| + | |
- | requeueTimeout: 250, // ms delay for requeue
| + | |
- | rev: 0, // causes animations to transition in reverse (for effects that support it such as scrollHorz/scrollVert/shuffle)
| + | |
- | shuffle: null, // coords for shuffle animation, ex: { top:15, left: 200 }
| + | |
- | skipInitializationCallbacks: false, // set to true to disable the first before/after callback that occurs prior to any transition
| + | |
- | slideExpr: null, // expression for selecting slides (if something other than all children is required)
| + | |
- | slideResize: 1, // force slide width/height to fixed size before every transition
| + | |
- | speed: 1000, // speed of the transition (any valid fx speed value)
| + | |
- | speedIn: null, // speed of the 'in' transition
| + | |
- | speedOut: null, // speed of the 'out' transition
| + | |
- | startingSlide: undefined,// zero-based index of the first slide to be displayed
| + | |
- | sync: 1, // true if in/out transitions should occur simultaneously
| + | |
- | timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance)
| + | |
- | timeoutFn: null, // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag)
| + | |
- | updateActivePagerLink: null,// callback fn invoked to update the active pager link (adds/removes activePagerClass style)
| + | |
- | width: null // container width (if the 'fit' option is true, the slides will be set to this width as well)
| + | |
- | };
| + | |
- | | + | |
- | })(jQuery);
| + | |
- | | + | |
- | | + | |
| /*! | | /*! |
| * jQuery Cycle Plugin Transition Definitions | | * jQuery Cycle Plugin Transition Definitions |
Line 1,070: |
Line 24: |
| * http://www.gnu.org/licenses/gpl.html | | * http://www.gnu.org/licenses/gpl.html |
| */ | | */ |
- | (function($) { | + | eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(7($){"1P 1M";$.8.9.D.1o=7(e,f,g){g.1n=7(a,b,c,d){$(b).1e();$(a).17();d()}};$.8.9.D.26=7(e,f,g){f.19(\':28(\'+g.1m+\')\').H({W:\'14\',\'V\':1});g.E.C(7(a,b,c,w,h,d){$(a).H(\'1c\',c.1a+(d!==F?1:0));$(b).H(\'1c\',c.1a+(d!==F?0:1))});g.x.V=1;g.v.V=0;g.4.V=1;g.4.W=\'14\';g.1g.1c=0};$.8.9.D.2b=7(a,b,c){a.H(\'N\',\'P\');c.E.C($.8.9.G);y h=a.B();c.4.6=h;c.4.5=0;c.T.6=0;c.x.6=0;c.v.6=-h};$.8.9.D.25=7(a,b,c){a.H(\'N\',\'P\');c.E.C($.8.9.G);y h=a.B();c.T.6=0;c.4.6=-h;c.4.5=0;c.x.6=0;c.v.6=h};$.8.9.D.21=7(a,b,c){a.H(\'N\',\'P\');c.E.C($.8.9.G);y w=a.A();c.T.5=0;c.4.5=w;c.4.6=0;c.x.5=0;c.v.5=0-w};$.8.9.D.20=7(a,b,c){a.H(\'N\',\'P\');c.E.C($.8.9.G);y w=a.A();c.T.5=0;c.4.5=-w;c.4.6=0;c.x.5=0;c.v.5=w};$.8.9.D.1Z=7(e,f,g){e.H(\'N\',\'P\').A();g.E.C(7(a,b,c,d){K(c.1f)d=!d;$.8.9.G(a,b,c);c.4.5=d?(b.J-1):(1-b.J);c.v.5=d?-a.J:a.J});g.T.5=0;g.4.6=0;g.x.5=0;g.v.6=0};$.8.9.D.1W=7(e,f,g){e.H(\'N\',\'P\');g.E.C(7(a,b,c,d){K(c.1f)d=!d;$.8.9.G(a,b,c);c.4.6=d?(1-b.I):(b.I-1);c.v.6=d?a.I:-a.I});g.T.6=0;g.4.5=0;g.x.6=0;g.v.5=0};$.8.9.D.1y=7(d,e,f){f.E.C(7(a,b,c){$(c.1p).19(a).17();$.8.9.G(a,b,c,M,F);c.x.A=b.J});f.4.5=0;f.4.6=0;f.4.A=0;f.x.A=\'1e\';f.v.A=0};$.8.9.D.1C=7(d,e,f){f.E.C(7(a,b,c){$(c.1p).19(a).17();$.8.9.G(a,b,c,F,M);c.x.B=b.I});f.4.5=0;f.4.6=0;f.4.B=0;f.x.B=\'1e\';f.v.B=0};$.8.9.D.16=7(j,l,m){y i,w=j.H(\'N\',\'1t\').A();l.H({5:0,6:0});m.E.C(7(a,b,c){$.8.9.G(a,b,c,F,F,F)});K(!m.1s){m.1r=m.1r/2;m.1s=F}m.1T=0;m.16=m.16||{5:-w,6:15};m.U=[];18(i=0;i<l.1l;i++)m.U.C(l[i]);18(i=0;i<m.1m;i++)m.U.C(m.U.1i());m.1n=7(b,c,d,e,f){K(d.1f)f=!f;y g=f?$(b):$(c);$(c).H(d.4);y h=d.1a;g.1w(d.16,d.1j,d.2c,7(){y a=$.8.9.2a(d,f);18(y k=0;k<a;k++){K(f)d.U.C(d.U.1i());O d.U.1Y(d.U.1V())}K(f){18(y i=0,1d=d.U.1l;i<1d;i++)$(d.U[i]).H(\'z-1b\',1d-i+h)}O{y z=$(b).H(\'z-1b\');g.H(\'z-1b\',R(z,10)+1+h)}g.1w({5:0,6:0},d.1O,d.1N,7(){$(f?11:b).17();K(e)e()})})};$.Y(m.4,{W:\'14\',V:1,6:0,5:0})};$.8.9.D.1z=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,F,M);c.4.6=b.I;c.x.B=b.I;c.v.A=b.J});f.T.6=0;f.4.5=0;f.4.B=0;f.x.6=0;f.v.B=0};$.8.9.D.1U=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,F,M);c.x.B=b.I;c.v.6=a.I});f.T.6=0;f.4.5=0;f.4.6=0;f.4.B=0;f.v.B=0};$.8.9.D.1A=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,M,F);c.4.5=b.J;c.x.A=b.J});f.4.6=0;f.4.A=0;f.x.5=0;f.v.A=0};$.8.9.D.1B=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,M,F);c.x.A=b.J;c.v.5=a.J});$.Y(f.4,{6:0,5:0,A:0});f.x.5=0;f.v.A=0};$.8.9.D.1x=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,M,M,F);c.4.6=b.I/2;c.4.5=b.J/2;$.Y(c.x,{6:0,5:0,A:b.J,B:b.I});$.Y(c.v,{A:0,B:0,6:a.I/2,5:a.J/2})});f.T.6=0;f.T.5=0;f.4.A=0;f.4.B=0};$.8.9.D.1D=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,M,M);c.4.5=b.J/2;c.4.6=b.I/2;$.Y(c.x,{6:0,5:0,A:b.J,B:b.I})});f.4.A=0;f.4.B=0;f.v.V=0};$.8.9.D.1E=7(d,e,f){y w=d.H(\'N\',\'P\').A();f.E.C(7(a,b,c){$.8.9.G(a,b,c);c.x.A=b.J;c.v.5=a.J});f.4.5=w;f.4.6=0;f.x.5=0;f.v.5=w};$.8.9.D.1F=7(d,e,f){y h=d.H(\'N\',\'P\').B();f.E.C(7(a,b,c){$.8.9.G(a,b,c);c.x.B=b.I;c.v.6=a.I});f.4.6=h;f.4.5=0;f.x.6=0;f.v.6=h};$.8.9.D.1G=7(d,e,f){y h=d.H(\'N\',\'P\').B();y w=d.A();f.E.C(7(a,b,c){$.8.9.G(a,b,c);c.x.B=b.I;c.v.6=a.I});f.4.6=h;f.4.5=w;f.x.6=0;f.x.5=0;f.v.6=h;f.v.5=w};$.8.9.D.1H=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,M,F);c.4.5=11.J/2;c.x.5=0;c.x.A=11.J;c.v.5=0});f.4.6=0;f.4.A=0};$.8.9.D.1I=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,F,M);c.4.6=11.I/2;c.x.6=0;c.x.B=11.I;c.v.6=0});f.4.B=0;f.4.5=0};$.8.9.D.1J=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,M,F,F);c.4.5=b.J/2;c.x.5=0;c.x.A=11.J;c.v.5=a.J/2;c.v.A=0});f.4.6=0;f.4.A=0};$.8.9.D.1K=7(d,e,f){f.E.C(7(a,b,c){$.8.9.G(a,b,c,F,M,F);c.4.6=b.I/2;c.x.6=0;c.x.B=b.I;c.v.6=a.I/2;c.v.B=0});f.4.B=0;f.4.5=0};$.8.9.D.1L=7(e,f,g){y d=g.1h||\'5\';y w=e.H(\'N\',\'P\').A();y h=e.B();g.E.C(7(a,b,c){$.8.9.G(a,b,c);c.1g.W=\'\';K(d==\'1v\')c.4.5=-w;O K(d==\'1u\')c.4.6=h;O K(d==\'1q\')c.4.6=-h;O c.4.5=w});g.x.5=0;g.x.6=0;g.4.6=0;g.4.5=0};$.8.9.D.1Q=7(e,f,g){y d=g.1h||\'5\';y w=e.H(\'N\',\'P\').A();y h=e.B();g.E.C(7(a,b,c){$.8.9.G(a,b,c,F,F,F);K(d==\'1v\')c.v.5=w;O K(d==\'1u\')c.v.6=-h;O K(d==\'1q\')c.v.6=h;O c.v.5=-w});g.x.5=0;g.x.6=0;g.4.6=0;g.4.5=0};$.8.9.D.1R=7(d,e,f){y w=d.H(\'N\',\'1t\').A();y h=d.B();f.E.C(7(a,b,c){$.8.9.G(a,b,c,F,F,F);K(!(c.v.5||c.v.6))$.Y(c.v,{5:w*2,6:-h/2,V:0});O c.v.V=0});f.4.5=0;f.4.6=0;f.x.5=0};$.8.9.D.1S=7(n,o,p){y w=n.H(\'N\',\'P\').A();y h=n.B();p.4=p.4||{};y q;K(p.S){K(/1X/.12(p.S))q=\'X(Q Q \'+h+\'L Q)\';O K(/22/.12(p.S))q=\'X(Q \'+w+\'L \'+h+\'L \'+w+\'L)\';O K(/23/.12(p.S))q=\'X(Q \'+w+\'L Q Q)\';O K(/24/.12(p.S))q=\'X(\'+h+\'L \'+w+\'L \'+h+\'L Q)\';O K(/1x/.12(p.S)){y s=R(h/2,10);y u=R(w/2,10);q=\'X(\'+s+\'L \'+u+\'L \'+s+\'L \'+u+\'L)\'}}p.4.S=p.4.S||q||\'X(Q Q Q Q)\';y d=p.4.S.27(/(\\d+)/g);y t=R(d[0],10),r=R(d[1],10),b=R(d[2],10),l=R(d[3],10);p.E.C(7(g,i,j){K(g==i)29;y k=$(g),$1k=$(i);$.8.9.G(g,i,j,F,F,M);j.1g.W=\'14\';y m=1,Z=R((j.1j/13),10)-1;(7 f(){y a=t?t-R(m*(t/Z),10):0;y c=l?l-R(m*(l/Z),10):0;y d=b<h?b+R(m*((h-b)/Z||1),10):h;y e=r<w?r+R(m*((w-r)/Z||1),10):w;$1k.H({S:\'X(\'+a+\'L \'+e+\'L \'+d+\'L \'+c+\'L)\'});(m++<=Z)?2d(f,13):k.H(\'W\',\'1o\')})()});$.Y(p.4,{W:\'14\',V:1,6:0,5:0});p.x={5:0};p.v={5:0}}})(2e);',62,139,'||||cssBefore|left|top|function|fn|cycle||||||||||||||||||||||animOut||animIn|var||width|height|push|transitions|before|true|commonReset|css|cycleH|cycleW|if|px|false|overflow|else|hidden|0px|parseInt|clip|cssFirst|els|opacity|display|rect|extend|count||this|test||block||shuffle|hide|for|not|slideCount|index|zIndex|len|show|rev|cssAfter|direction|shift|speedIn|next|length|currSlide|fxFn|none|elements|down|speed|speedAdjusted|visible|up|right|animate|zoom|slideX|turnUp|turnLeft|turnRight|slideY|fadeZoom|blindX|blindY|blindZ|growX|growY|curtainX|curtainY|cover|strict|easeOut|speedOut|use|uncover|toss|wipe|random|turnDown|pop|scrollVert|l2r|unshift|scrollHorz|scrollRight|scrollLeft|r2l|t2b|b2t|scrollDown|fadeout|match|eq|return|hopsFromLast|scrollUp|easeIn|setTimeout|jQuery'.split('|'),0,{})) |
- | "use strict";
| + | |
- | | + | |
- | // | + | |
- | // These functions define slide initialization and properties for the named
| + | |
- | // transitions. To save file size feel free to remove any of these that you
| + | |
- | // don't need.
| + | |
- | // | + | |
- | $.fn.cycle.transitions.none = function($cont, $slides, opts) { | + | |
- | opts.fxFn = function(curr,next,opts,after){
| + | |
- | $(next).show();
| + | |
- | $(curr).hide();
| + | |
- | after();
| + | |
- | };
| + | |
- | }; | + | |
- | | + | |
- | // not a cross-fade, fadeout only fades out the top slide
| + | |
- | $.fn.cycle.transitions.fadeout = function($cont, $slides, opts) { | + | |
- | $slides.not(':eq('+opts.currSlide+')').css({ display: 'block', 'opacity': 1 });
| + | |
- | opts.before.push(function(curr,next,opts,w,h,rev) {
| + | |
- | $(curr).css('zIndex',opts.slideCount + (rev !== true ? 1 : 0));
| + | |
- | $(next).css('zIndex',opts.slideCount + (rev !== true ? 0 : 1));
| + | |
- | });
| + | |
- | opts.animIn.opacity = 1;
| + | |
- | opts.animOut.opacity = 0;
| + | |
- | opts.cssBefore.opacity = 1;
| + | |
- | opts.cssBefore.display = 'block';
| + | |
- | opts.cssAfter.zIndex = 0;
| + | |
- | }; | + | |
- | | + | |
- | // scrollUp/Down/Left/Right
| + | |
- | $.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) { | + | |
- | $cont.css('overflow','hidden');
| + | |
- | opts.before.push($.fn.cycle.commonReset);
| + | |
- | var h = $cont.height();
| + | |
- | opts.cssBefore.top = h;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.cssFirst.top = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animOut.top = -h;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) { | + | |
- | $cont.css('overflow','hidden');
| + | |
- | opts.before.push($.fn.cycle.commonReset);
| + | |
- | var h = $cont.height();
| + | |
- | opts.cssFirst.top = 0;
| + | |
- | opts.cssBefore.top = -h;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animOut.top = h;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) { | + | |
- | $cont.css('overflow','hidden');
| + | |
- | opts.before.push($.fn.cycle.commonReset);
| + | |
- | var w = $cont.width();
| + | |
- | opts.cssFirst.left = 0;
| + | |
- | opts.cssBefore.left = w;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.left = 0-w;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) { | + | |
- | $cont.css('overflow','hidden');
| + | |
- | opts.before.push($.fn.cycle.commonReset);
| + | |
- | var w = $cont.width();
| + | |
- | opts.cssFirst.left = 0;
| + | |
- | opts.cssBefore.left = -w;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.left = w;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) { | + | |
- | $cont.css('overflow','hidden').width();
| + | |
- | opts.before.push(function(curr, next, opts, fwd) {
| + | |
- | if (opts.rev)
| + | |
- | fwd = !fwd;
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
| + | |
- | opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
| + | |
- | });
| + | |
- | opts.cssFirst.left = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.top = 0;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) { | + | |
- | $cont.css('overflow','hidden');
| + | |
- | opts.before.push(function(curr, next, opts, fwd) {
| + | |
- | if (opts.rev)
| + | |
- | fwd = !fwd;
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
| + | |
- | opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
| + | |
- | });
| + | |
- | opts.cssFirst.top = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animOut.left = 0;
| + | |
- | }; | + | |
- | | + | |
- | // slideX/slideY
| + | |
- | $.fn.cycle.transitions.slideX = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $(opts.elements).not(curr).hide();
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,true);
| + | |
- | opts.animIn.width = next.cycleW;
| + | |
- | });
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.width = 0;
| + | |
- | opts.animIn.width = 'show';
| + | |
- | opts.animOut.width = 0;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.slideY = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $(opts.elements).not(curr).hide();
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,false);
| + | |
- | opts.animIn.height = next.cycleH;
| + | |
- | });
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | opts.animIn.height = 'show';
| + | |
- | opts.animOut.height = 0;
| + | |
- | }; | + | |
- | | + | |
- | // shuffle
| + | |
- | $.fn.cycle.transitions.shuffle = function($cont, $slides, opts) { | + | |
- | var i, w = $cont.css('overflow', 'visible').width();
| + | |
- | $slides.css({left: 0, top: 0});
| + | |
- | opts.before.push(function(curr,next,opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,true,true);
| + | |
- | });
| + | |
- | // only adjust speed once!
| + | |
- | if (!opts.speedAdjusted) {
| + | |
- | opts.speed = opts.speed / 2; // shuffle has 2 transitions
| + | |
- | opts.speedAdjusted = true;
| + | |
- | }
| + | |
- | opts.random = 0;
| + | |
- | opts.shuffle = opts.shuffle || {left:-w, top:15};
| + | |
- | opts.els = [];
| + | |
- | for (i=0; i < $slides.length; i++)
| + | |
- | opts.els.push($slides[i]);
| + | |
- | | + | |
- | for (i=0; i < opts.currSlide; i++)
| + | |
- | opts.els.push(opts.els.shift());
| + | |
- | | + | |
- | // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
| + | |
- | opts.fxFn = function(curr, next, opts, cb, fwd) {
| + | |
- | if (opts.rev)
| + | |
- | fwd = !fwd;
| + | |
- | var $el = fwd ? $(curr) : $(next);
| + | |
- | $(next).css(opts.cssBefore);
| + | |
- | var count = opts.slideCount;
| + | |
- | $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
| + | |
- | var hops = $.fn.cycle.hopsFromLast(opts, fwd);
| + | |
- | for (var k=0; k < hops; k++) {
| + | |
- | if (fwd)
| + | |
- | opts.els.push(opts.els.shift());
| + | |
- | else
| + | |
- | opts.els.unshift(opts.els.pop());
| + | |
- | }
| + | |
- | if (fwd) {
| + | |
- | for (var i=0, len=opts.els.length; i < len; i++)
| + | |
- | $(opts.els[i]).css('z-index', len-i+count);
| + | |
- | }
| + | |
- | else {
| + | |
- | var z = $(curr).css('z-index');
| + | |
- | $el.css('z-index', parseInt(z,10)+1+count);
| + | |
- | }
| + | |
- | $el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
| + | |
- | $(fwd ? this : curr).hide();
| + | |
- | if (cb) cb();
| + | |
- | });
| + | |
- | });
| + | |
- | };
| + | |
- | $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
| + | |
- | }; | + | |
- | | + | |
- | // turnUp/Down/Left/Right
| + | |
- | $.fn.cycle.transitions.turnUp = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,false);
| + | |
- | opts.cssBefore.top = next.cycleH;
| + | |
- | opts.animIn.height = next.cycleH;
| + | |
- | opts.animOut.width = next.cycleW;
| + | |
- | });
| + | |
- | opts.cssFirst.top = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animOut.height = 0;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.turnDown = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,false);
| + | |
- | opts.animIn.height = next.cycleH;
| + | |
- | opts.animOut.top = curr.cycleH;
| + | |
- | });
| + | |
- | opts.cssFirst.top = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | opts.animOut.height = 0;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,true);
| + | |
- | opts.cssBefore.left = next.cycleW;
| + | |
- | opts.animIn.width = next.cycleW;
| + | |
- | });
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.width = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.width = 0;
| + | |
- | }; | + | |
- | $.fn.cycle.transitions.turnRight = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,true);
| + | |
- | opts.animIn.width = next.cycleW;
| + | |
- | opts.animOut.left = curr.cycleW;
| + | |
- | });
| + | |
- | $.extend(opts.cssBefore, { top: 0, left: 0, width: 0 });
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.width = 0;
| + | |
- | }; | + | |
- | | + | |
- | // zoom
| + | |
- | $.fn.cycle.transitions.zoom = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,false,true);
| + | |
- | opts.cssBefore.top = next.cycleH/2;
| + | |
- | opts.cssBefore.left = next.cycleW/2;
| + | |
- | $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
| + | |
- | $.extend(opts.animOut, { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 });
| + | |
- | });
| + | |
- | opts.cssFirst.top = 0;
| + | |
- | opts.cssFirst.left = 0;
| + | |
- | opts.cssBefore.width = 0;
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | }; | + | |
- | | + | |
- | // fadeZoom
| + | |
- | $.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,false);
| + | |
- | opts.cssBefore.left = next.cycleW/2;
| + | |
- | opts.cssBefore.top = next.cycleH/2;
| + | |
- | $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH });
| + | |
- | });
| + | |
- | opts.cssBefore.width = 0;
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | opts.animOut.opacity = 0;
| + | |
- | }; | + | |
- | | + | |
- | // blindX
| + | |
- | $.fn.cycle.transitions.blindX = function($cont, $slides, opts) { | + | |
- | var w = $cont.css('overflow','hidden').width();
| + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.animIn.width = next.cycleW;
| + | |
- | opts.animOut.left = curr.cycleW;
| + | |
- | });
| + | |
- | opts.cssBefore.left = w;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.left = w;
| + | |
- | }; | + | |
- | // blindY
| + | |
- | $.fn.cycle.transitions.blindY = function($cont, $slides, opts) { | + | |
- | var h = $cont.css('overflow','hidden').height();
| + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.animIn.height = next.cycleH;
| + | |
- | opts.animOut.top = curr.cycleH;
| + | |
- | });
| + | |
- | opts.cssBefore.top = h;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animOut.top = h;
| + | |
- | }; | + | |
- | // blindZ
| + | |
- | $.fn.cycle.transitions.blindZ = function($cont, $slides, opts) { | + | |
- | var h = $cont.css('overflow','hidden').height();
| + | |
- | var w = $cont.width();
| + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.animIn.height = next.cycleH;
| + | |
- | opts.animOut.top = curr.cycleH;
| + | |
- | });
| + | |
- | opts.cssBefore.top = h;
| + | |
- | opts.cssBefore.left = w;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animOut.top = h;
| + | |
- | opts.animOut.left = w;
| + | |
- | }; | + | |
- | | + | |
- | // growX - grow horizontally from centered 0 width
| + | |
- | $.fn.cycle.transitions.growX = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,true);
| + | |
- | opts.cssBefore.left = this.cycleW/2;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animIn.width = this.cycleW;
| + | |
- | opts.animOut.left = 0;
| + | |
- | });
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.width = 0;
| + | |
- | }; | + | |
- | // growY - grow vertically from centered 0 height
| + | |
- | $.fn.cycle.transitions.growY = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,false);
| + | |
- | opts.cssBefore.top = this.cycleH/2;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animIn.height = this.cycleH;
| + | |
- | opts.animOut.top = 0;
| + | |
- | });
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | }; | + | |
- | | + | |
- | // curtainX - squeeze in both edges horizontally
| + | |
- | $.fn.cycle.transitions.curtainX = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,false,true,true);
| + | |
- | opts.cssBefore.left = next.cycleW/2;
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animIn.width = this.cycleW;
| + | |
- | opts.animOut.left = curr.cycleW/2;
| + | |
- | opts.animOut.width = 0;
| + | |
- | });
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.width = 0;
| + | |
- | }; | + | |
- | // curtainY - squeeze in both edges vertically
| + | |
- | $.fn.cycle.transitions.curtainY = function($cont, $slides, opts) { | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,false,true);
| + | |
- | opts.cssBefore.top = next.cycleH/2;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.animIn.height = next.cycleH;
| + | |
- | opts.animOut.top = curr.cycleH/2;
| + | |
- | opts.animOut.height = 0;
| + | |
- | });
| + | |
- | opts.cssBefore.height = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | }; | + | |
- | | + | |
- | // cover - curr slide covered by next slide
| + | |
- | $.fn.cycle.transitions.cover = function($cont, $slides, opts) { | + | |
- | var d = opts.direction || 'left';
| + | |
- | var w = $cont.css('overflow','hidden').width();
| + | |
- | var h = $cont.height();
| + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts);
| + | |
- | opts.cssAfter.display = '';
| + | |
- | if (d == 'right')
| + | |
- | opts.cssBefore.left = -w;
| + | |
- | else if (d == 'up')
| + | |
- | opts.cssBefore.top = h;
| + | |
- | else if (d == 'down')
| + | |
- | opts.cssBefore.top = -h;
| + | |
- | else
| + | |
- | opts.cssBefore.left = w;
| + | |
- | });
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | }; | + | |
- | | + | |
- | // uncover - curr slide moves off next slide
| + | |
- | $.fn.cycle.transitions.uncover = function($cont, $slides, opts) { | + | |
- | var d = opts.direction || 'left';
| + | |
- | var w = $cont.css('overflow','hidden').width();
| + | |
- | var h = $cont.height();
| + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,true,true);
| + | |
- | if (d == 'right')
| + | |
- | opts.animOut.left = w;
| + | |
- | else if (d == 'up')
| + | |
- | opts.animOut.top = -h;
| + | |
- | else if (d == 'down')
| + | |
- | opts.animOut.top = h;
| + | |
- | else
| + | |
- | opts.animOut.left = -w;
| + | |
- | });
| + | |
- | opts.animIn.left = 0;
| + | |
- | opts.animIn.top = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | }; | + | |
- | | + | |
- | // toss - move top slide and fade away
| + | |
- | $.fn.cycle.transitions.toss = function($cont, $slides, opts) { | + | |
- | var w = $cont.css('overflow','visible').width();
| + | |
- | var h = $cont.height();
| + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,true,true);
| + | |
- | // provide default toss settings if animOut not provided
| + | |
- | if (!(opts.animOut.left || opts.animOut.top))
| + | |
- | $.extend(opts.animOut, { left: w*2, top: -h/2, opacity: 0 });
| + | |
- | else
| + | |
- | opts.animOut.opacity = 0;
| + | |
- | });
| + | |
- | opts.cssBefore.left = 0;
| + | |
- | opts.cssBefore.top = 0;
| + | |
- | opts.animIn.left = 0;
| + | |
- | }; | + | |
- | | + | |
- | // wipe - clip animation
| + | |
- | $.fn.cycle.transitions.wipe = function($cont, $slides, opts) { | + | |
- | var w = $cont.css('overflow','hidden').width();
| + | |
- | var h = $cont.height();
| + | |
- | opts.cssBefore = opts.cssBefore || {};
| + | |
- | var clip;
| + | |
- | if (opts.clip) {
| + | |
- | if (/l2r/.test(opts.clip))
| + | |
- | clip = 'rect(0px 0px '+h+'px 0px)';
| + | |
- | else if (/r2l/.test(opts.clip))
| + | |
- | clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
| + | |
- | else if (/t2b/.test(opts.clip))
| + | |
- | clip = 'rect(0px '+w+'px 0px 0px)';
| + | |
- | else if (/b2t/.test(opts.clip))
| + | |
- | clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
| + | |
- | else if (/zoom/.test(opts.clip)) {
| + | |
- | var top = parseInt(h/2,10);
| + | |
- | var left = parseInt(w/2,10);
| + | |
- | clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
| + | |
- | }
| + | |
- | }
| + | |
- | | + | |
- | opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
| + | |
- | | + | |
- | var d = opts.cssBefore.clip.match(/(\d+)/g);
| + | |
- | var t = parseInt(d[0],10), r = parseInt(d[1],10), b = parseInt(d[2],10), l = parseInt(d[3],10);
| + | |
- | | + | |
- | opts.before.push(function(curr, next, opts) {
| + | |
- | if (curr == next) return;
| + | |
- | var $curr = $(curr), $next = $(next);
| + | |
- | $.fn.cycle.commonReset(curr,next,opts,true,true,false);
| + | |
- | opts.cssAfter.display = 'block';
| + | |
- | | + | |
- | var step = 1, count = parseInt((opts.speedIn / 13),10) - 1;
| + | |
- | (function f() {
| + | |
- | var tt = t ? t - parseInt(step * (t/count),10) : 0;
| + | |
- | var ll = l ? l - parseInt(step * (l/count),10) : 0;
| + | |
- | var bb = b < h ? b + parseInt(step * ((h-b)/count || 1),10) : h;
| + | |
- | var rr = r < w ? r + parseInt(step * ((w-r)/count || 1),10) : w;
| + | |
- | $next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
| + | |
- | (step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
| + | |
- | })();
| + | |
- | });
| + | |
- | $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 });
| + | |
- | opts.animIn = { left: 0 };
| + | |
- | opts.animOut = { left: 0 };
| + | |
- | }; | + | |
- | | + | |
- | })(jQuery); | + | |
| var normal=["https://static.igem.org/mediawiki/2013hs/2/25/AUC_Turkey_Project.png","https://static.igem.org/mediawiki/2013hs/e/e8/AUC_Turkey_iGEMism.png","https://static.igem.org/mediawiki/2013hs/9/9f/AUC_Turkey_Flash_Game.png","https://static.igem.org/mediawiki/2013hs/f/fe/AUC_Turkey_Embassies.png","https://static.igem.org/mediawiki/2013hs/3/34/AUC_Turkey_Surveys.png","https://static.igem.org/mediawiki/2013hs/d/d0/AUC_Turkey_iGEMismTV.png"]; | | var normal=["https://static.igem.org/mediawiki/2013hs/2/25/AUC_Turkey_Project.png","https://static.igem.org/mediawiki/2013hs/e/e8/AUC_Turkey_iGEMism.png","https://static.igem.org/mediawiki/2013hs/9/9f/AUC_Turkey_Flash_Game.png","https://static.igem.org/mediawiki/2013hs/f/fe/AUC_Turkey_Embassies.png","https://static.igem.org/mediawiki/2013hs/3/34/AUC_Turkey_Surveys.png","https://static.igem.org/mediawiki/2013hs/d/d0/AUC_Turkey_iGEMismTV.png"]; |
| var active=["https://static.igem.org/mediawiki/2013hs/1/1a/AUC_Turkey_Project_Active.png","https://static.igem.org/mediawiki/2013hs/a/a1/AUC_Turkey_iGEMism_Active.png","https://static.igem.org/mediawiki/2013hs/9/95/AUC_Turkey_Flash_Game_Active.png","https://static.igem.org/mediawiki/2013hs/c/c6/AUC_Turkey_Embassies_Active.png","https://static.igem.org/mediawiki/2013hs/f/fc/AUC_Turkey_Surveys_Active.png","https://static.igem.org/mediawiki/2013hs/b/b9/AUC_Turkey_iGEMismTV_Active.png"]; | | var active=["https://static.igem.org/mediawiki/2013hs/1/1a/AUC_Turkey_Project_Active.png","https://static.igem.org/mediawiki/2013hs/a/a1/AUC_Turkey_iGEMism_Active.png","https://static.igem.org/mediawiki/2013hs/9/95/AUC_Turkey_Flash_Game_Active.png","https://static.igem.org/mediawiki/2013hs/c/c6/AUC_Turkey_Embassies_Active.png","https://static.igem.org/mediawiki/2013hs/f/fc/AUC_Turkey_Surveys_Active.png","https://static.igem.org/mediawiki/2013hs/b/b9/AUC_Turkey_iGEMismTV_Active.png"]; |