From 22fd709e81dd5056e2f7998484a1c38f354d9880 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Wed, 28 Aug 2013 07:53:26 -0500 Subject: [PATCH] Added working drag, fixed scrolling on drag, fixed cordova example --- .gitignore | 2 +- dist/framework.css | 32 ++++++++-------- .../UserInterfaceState.xcuserstate | Bin 19536 -> 20714 bytes example/cordova/iOS/www/css/framework.css | 32 ++++++++-------- example/cordova/iOS/www/index.html | 5 ++- .../cordova/iOS/www/js/framework-events.js | 13 ++++--- .../cordova/iOS/www/js/framework-gestures.js | 4 +- example/cordova/iOS/www/js/framework-panel.js | 7 ++-- example/events.html | 26 +++++++++++++ example/events.js | 25 +++++++++---- example/events/drag.html | 35 ++++++++++++++++++ example/panels.html | 4 +- js/framework/framework-events.js | 13 ++++--- js/framework/framework-gestures.js | 4 +- js/framework/framework-panel.js | 7 ++-- 15 files changed, 145 insertions(+), 64 deletions(-) create mode 100644 example/events/drag.html diff --git a/.gitignore b/.gitignore index 335b4f2d8d..42da0c25b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ .DS_Store -*.sw[mpcod] +*.sw[mnpcod] .sass-cache/ framework.sublime-project diff --git a/dist/framework.css b/dist/framework.css index eb90b0e65f..99fba5cdd9 100644 --- a/dist/framework.css +++ b/dist/framework.css @@ -428,8 +428,8 @@ main { color: #333333; text-decoration: none; } .button-default.active, .button-default:active { - background-color: #e6e6e6; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #ebebeb; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #c4c4c4; } .button-secondary { @@ -440,8 +440,8 @@ main { color: #333333; text-decoration: none; } .button-secondary.active, .button-secondary:active { - background-color: gainsboro; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #e1e1e1; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #b3b3b3; } .button-primary { @@ -452,8 +452,8 @@ main { color: white; text-decoration: none; } .button-primary.active, .button-primary:active { - background-color: #3d7be2; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #4581e4; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #3d67ae; } .button-info { @@ -464,8 +464,8 @@ main { color: white; text-decoration: none; } .button-info.active, .button-info:active { - background-color: #34c6df; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #3dc8e0; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #3998a9; } .button-success { @@ -476,8 +476,8 @@ main { color: white; text-decoration: none; } .button-success.active, .button-success:active { - background-color: #6fac45; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #73b447; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #597e41; } .button-warning { @@ -488,8 +488,8 @@ main { color: white; text-decoration: none; } .button-warning.active, .button-warning:active { - background-color: #eba612; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #edaa1a; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #a47a21; } .button-danger { @@ -500,8 +500,8 @@ main { color: white; text-decoration: none; } .button-danger.active, .button-danger:active { - background-color: #cc3724; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #d43926; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: #94362a; } .button-dark { @@ -512,8 +512,8 @@ main { color: white; text-decoration: none; } .button-dark.active, .button-dark:active { - background-color: #2b2b2b; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); + background-color: #303030; + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.12); border-color: black; } .list-divider { diff --git a/example/cordova/iOS/CodiqaProject.xcodeproj/project.xcworkspace/xcuserdata/driftyadmin.xcuserdatad/UserInterfaceState.xcuserstate b/example/cordova/iOS/CodiqaProject.xcodeproj/project.xcworkspace/xcuserdata/driftyadmin.xcuserdatad/UserInterfaceState.xcuserstate index 3d4288f7345c30fc3e3043014a41207fc6c8c490..d745fe98fb648f22159a07cf1a0ab8f6b984c838 100644 GIT binary patch delta 11456 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

rsvGmK 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 V2k8Gj03eEfxaoBr_1}4){U6dr(>VYD delta 10725 zcma)hcR`YR zwN|ZFJKU>Qt+TdTt*fnCt+oAKf~fs`{o}_--go!9=bm-X^W6JxSHTmD;M{QR6lKp- zC%exAKj05SKqv?UMvw+fzzi(F3erIaumL-8fK1Q`GzLvTQ_u{w1D!x;&=d3my+J7$ z3Wk9)P!2|eF~AL`f@xqnm;q*jcftE$Ay@*IgB73#YycaDdG_JBQMFW4LQgZ<$kI2ewGW8hdg4vvQtpc^tc z3(kh`!o_e2TngRG;BvSER>CUyA>0H%f}7#za5vlo55dFm2s{VR!wc{Rya|7Sx8NiA z82$;LAc80oAwLv?LXi%|pjecI49JMmQ3lFHE|iDrp~k2sYKz*T0@MTbM1|;W)CU!# z!Dt97MdfHDdIwEGQ_(axnvQ0mnP?W8i{_(6XgOMeD$!cB4y{KU&_?tL+JQbrJJA>D z5IT&Gprhy*I*v}D3+M-Q5nVzz(J$y0x{H3p5F?B+!4!+IAC_V{4#Wx^gu`$wPQXr_ zjdO4=cHul+57);Ha6{Y`cf;=PxB&OSJ#is^8yDeTxHs;DN8!4g<2C)%4aS|8FBP~fQ(wej(ZAnMci4>3? zq&MkLhLT~VjEo^;$vDEu6f%=|$b7PZEF;Uw3bKllhV z`H@^FKarow4RVwGLT-`!9H zK_rL*(Lm?fM?zEAgIEv;^dKH2fJBf4l6gCp1u_L&%MP%w*%5Y^-Q(>*X7KpYot~>S zKRFAyfMF$Yf^3ija#;`yW+5zeCCCHyKz-1Fg|SYolC9@63PfKuYz|rhLp5jtTC#Aa zt_H0^8>V4SW;hMr0#eW(s+; zeThMQ3UmQoK{wFdv)fM_UjTY^Y?I%yeXA~Q^4s=Ilr{62N$=Su3snCG z9{vyFF-NrEi0d+a+%vE0{${OTSKYr5KnT{ecC0OH!yGSsPU=}84^oSunClJtL4WoZ zYhMi|P|EUI2hQVOd7e8MhWtklFdW7K!$zotDyW7LPy@9v5=OyjsDm*umUU)bS$Ech z6|y4Mn-#Nutb`3@gEvAwjE4y@5hlT8m;zIw0UBW%G_g`Pl8s>#*%UUN&0=$yhb?4F z*s>SfPhPwKV1{qAbn!$hdIi1Ql`zZK+s*S&*tpRCuk9`9@(mPts)7n%gE#c`_TGBjp<;vwh8KE%4N<=~*x5JO zw@^{&n^_tvd2O)3H`u>WQO;-fjjKO&Xrtmm#r=vZiqi(aEE8R#1v!gcaa@(@_gLkcW~L*X!3#)h(Ctc;bfgcWc&h=n6r z1sl!+*$8gxjp5_mJvWscQg<6`wHS0(t0QxKr?F;(&OH9b27m&b@j`nPYKUv?!OTe0$`I5vOINwWRE}RG7gB~`Pjbr24gq3gsd>_OHz(vf>7^flB zGUWME6_;EM*SvAnwQwC@bpxBkCi5BZ@ELM-T=K{8lQ*Jwz)yWVPG!?x2;5B_k-Qfk zcq95C{K|)(!DhZdFH>uhkHS-LM4yIdeCXNi-52OKW~KpivWm4h%I6taQI?o@EW6k z|0o>L)oTok*Bc1?uX>${spl03`nz9X5s5$%azZ|vkakQ~eF^+H6(HWykdew>j7V5;s zM(t5P>VP`3P3$AKnSHzxbw*uKN7RjNVcXcpY$s>?6xH5z~hvK{PGK4U;sR{l^l>_1T#RiNSj?HGk7@N|SmqcLbK8i&TS&)6>Z zIor+ltU_+YkbowlNo+6sg6(5pvi+Ry{oV&qeL--8+-;PtVFxe=V&+D!%nhu>>|7NG7F-8=%AOzmuNpa zz)rE#>`V>%3Vn^fVc)T{?0au|P4HZfiSnF|85?sFefNLBXVLfQ96Qf0upjt>rLi&D z=ra28|G=)JpU}_j61&W<@XeCz5s;^W)_t5l-_cWGSj{DPh#sK>=uh;7%kd+-&d#u(*w3rcU+5Y7 z8$IWr&)5xill{VO^Us@{*)QT_JfFwUaQg!(7GsIG^sFcuTRilK?w=TLup? ztOykFL_CSxZ8FHmQ}9&J7DKDpXvP^-2r%|6o{nem!I^j#p3MQ1@mzk`orm%~I%8XH zv;boS81xIY^~?EF|*-vP+fyp;7VL2 zz)%4y1*m43r|?QXdlg>Yt$Cl~Ar&QkONz?`7$(5*ZY4wd6pu>lUom)4tplyY>pj!c zqG>hWz~kZcw3sH|sUPCi0#tE){>YIdYpH$g?TX-CJsOtwDH&GOuB^27IODC$SK;mW z6Ob=JtpFn#cvZ7V8rClJ8Q#T9{YITSG%D>qd@$#!RcUX2fGQnQjX(Fg?VE;bXYRp! zJ@ZTkg1_MW?K2r&ujvne$u&3^<$-*ZCqSK7$1#kDdLG#D*F3P{DO~AX9o{1uK8%kP zDiS@GRJEtEInWOu^{!jnt}rVkUdVBLqEHd%g#@=M8eKZPqC;6R-&iNTNMCpStL{3N zKaF|dslsOjsIS6j1sKo0;7_xuDZYR&dIx?GU_uqXB)~*w=+L^TWJuk_YxrjnT!Vka z*YQsROcG$S08?u44en;Y2r$*_S`B$UKiE>#8{hK^b6@KXUA1(+s4lK{;Ev8q!6XF467D~C0Xi7>{Y;khqN*sJ_=c+DHUA|VqOJ8`0dgBT>zvnT zBof2Dm&B4d!nbI)&;#ZOF!we0t@YVj|9k0@z9unx-O=^`=Z>9ndX@GW?b)4fh-D&u|5|Bkj4x$y)+!Sq1dI;Ibhj-rbpW^>%j=VCxs%g^Hktr9;X~ z2NgFd8B|eR*1EJ$@e8|>p5$$g_8sR*kpSB=LoJ7W_(_ozlfD9MC&2udS(22HL9d?# z$zU=>fSiT)EU8DQqOy`APg|SXT~0>)2Q`w65?}`bc4SH2U$9cYthgwy-q_l6d>uFA z39m6;I|CDeO!BhlJ;svB0_;-9-c&Dp)5vrIb`@a3EB0oQIeg);muFcrm&_AjHvx9% zzWujNqj{fv@E^_=lO+P|A;6w|+-i?=SCZ495hGvlV~#XYv(q(#2mUMJi(vg3cCJH608UTCSV7TUP>>`!)+{k+&Bd&pk$1=&Zw z6d<=mKLPd^V2J<+tRe@eA>Wa+xj3YtzNC$T7a`(t=o>i^`EUrJJ2Hj+J$zcooHv;g?6RgXm?sb zd(fV=kiIRzIRcz3K)$=)6QDN@BsYiO?Z;D% zgASyFD0gJO>sAP`vewDg2yl%z0r8rNf3Eko3|nVs&xh`DKuX8c3H)_tennZy5I%9K z0GFTQy^IQUVpm?MmcJNS*3OrB>16s2cgUCJa_zht-aQ5McuA)gI*m>*RH$D<>sN46 zy@pp5_o2+R~(+l(mdXZkD zm+2LHm0qJi3UH?YKNH|C0e&vP-2&VrK+fJ50^GNb``yp<2EEC@Z_(TQ^Nu&1@o2hV zfCs&gUkUJQ@Ao%ezEnJlH7+YFE%T;HkD~rzH+@R~subXXTJ8KzpK~?8c+brBSwsJ( z|M=dx^M+3Z5vap+c|_PJTz!QA@M1yFJ zL1g;RxLITo;3)x~=HrrvQLv5YWMU)!9#G=0mB8UG3X}QKid%?pua?E5i~H0s>)oGU zOO%}y<%n`S=2!5yiVX70Q8nN4sr)k33G(oL{D>fajTJ_;B!<^s@g#-cV5RXJtfpiL zznhv%-s87Y?~_GjFE6GlNFSVOzzkOuCo2R<3$+!H9>L|aSxi^e(?2`i=hOHH!%FD}{Z{)2`A7LD`X~FlQ~izp zCjU%-r+<#W%fFs~1OLJPOZ^Y~KNLeT5sSoPu~aM*$B0wJCb31FF1Cpqh?|O=i(87@ ziQ9`ih&ze+Tn#dpPzB>|EU zNs`1O$&lD3nUdy`d`SwrtE4s3&C*@c-O|0%ebW8XgVGbyQ_?fiv(j_Y3(|`L z0RfJHz5xpY_6J-FxE*je;C{gG0S^Nn%OtW8nMxKR)5@Y`sWP`&W|d{gvSit^Tv?v1 zwd`$Kk!*l$q->mQf{e-Dkxi9Nm(7&Tm#vd+k!_dlknNNmk{yv9lbw*AlIO~s$n)i0 z2@*;U}d9l2oyi`6yK3Tq8zCpfG{-OLM`RDTQY$*Ys32WXY>+-^X3(Ob#X(DhmIq6NRlyO#+Tf_*g~2O> zR|l^RULO(=q7Ko7M219%EC{I%SsAiAWNoN8G(6O;3XKTWhO*Gvp>sm#g?hpiVUb}8 zVf>^XW(Z3QbA)AuWryX4<%QJ`D+rquHZN>v*q32P!_I_V3%eb5C+uF>gRtMjo`pRR z`!^hh<8T@-4_Aik!;Rsla7%c4xGmfjUN5{sc%$$p;myK(htCLK6#hl{x8dJ~UkSex z{wVxUclgurXW`G4BBj4lq6|>Vl?tU=8K+EDW-99|8!8(sn<|?t+bcULJ1M&;yD1Bl z#mXVdvC7HHDavWe8OmA81R`1-ousy?)73V$L!G5=pl+mYqHd;cp>Cz_s4i3wa;r<#!_*b( z5$aLuchpnW)73L00wUBA+K8x#n25ND_=x%uEh1V+w2gQxqF2P&i188b2q9up#H@&S zBNj${60tktV#Mze|7wtiX#6x{jZ~x3L};{{D9tj>dd*hNcFhjWPR%aO0nJyMZ#0KA zM>NMYx3vLUoi^|?V&By7HRux`)dbi2Wh8hmuc5)H)uC%H)(fi zKiBTo?$sXAey=^R{Xu(4dqsOqdq;au`#}4<_M!H%_DLj;42-l#wu>AY$s*@OE{$9k zxjeEma$V%c$W4)(BX>vciQF5xFY;LA$;i`@XCu!=UWoi9@^KW7@^?o`q5`6VqC%p= zqLfjoQ4OOmL|uux6ZJ>bqo_Zlo<@Uc6iuQ<(f-ld(Ve18qen#x(UYRziJlrgJ$h#J zqUaUTRnaxktD-kXZ;IX=y(M~E^d+5C=g`&DHPAKFb<`E;dg|WR_0pB-2I>auN_E3@ zV|3$nGj)q}D|A)58l8KUZli9KZnJKSZkukm?tt#7?z=c!oFlGYT${L#aRqTDaU6dad}h2eJ~uuuzJ7eW_<8Z$<4-1lgxCaE zLf3@h2@?|*BrHt$AYnK;@!jtiGL(MPV!5VB*~H# zNx?~BNvb4GQdE*IDK)84Qv0MHN##lJC#_G~opdbedeZY`Rk9{IGFg`#mz7qLKPfPUq=-^7Q|hNQOKIs&X_N9+N`6W~ zO23o=DT7l+r3fjNDXUTrq#R8-k#aia`;@CG*Hdn!JWPeDB-JlfoH`)2Jau~NyQwQv zKTJKBddc8#h%x9535H}tsv*PRFgOi4hQ@|cLxo|vVU6La;gsQtksAGtQls1$WDGH8 z8=Dzh8rvA(GIlU_GP=7P`x{G*WyaygQAW3MqH(fus&Tq;yYZ;;XX8ENZ^nnl$7wh% zI4vwqm8MCHN{dO;rzNJ@)3VZX((=+8q%}@!mew+@by~NyzG*_*g0zp*j;H;Qb~Ei^ z+Vix3P0)l*)Fd|rnLrTT^>eM^hKKshg>{X@F_4X{f2(G~6`7 zB$y_fW}D`kJf@|l6{c#_X47ud7pDEDgQg>c9bGdn}d5U?3d87Fw^A_`V^A7V)^I7wC^9}PY^Bwa&^8*X9 z1X5-kRc$zru+Sn6AvSejW{SlU|JTRK`gTZ%11EMqOqGSM>GGTk!E zGRHE{vdpsDvemN9vfZ-7a=`MnEl(}aEYGdTO0E7@ zi8a(3X-%=3tQKp!HPf1Hby@3K+qxC?)(O^0)+yHM)|u8t)@9Ze z)++02>sspu>xb4)toyCsSPxl`SWj9{ThCh0S+7~|S)W?}w*H%r(rLPXdPsVBx;kB( z9-SVWu1{~8J|KNY`ttNW>4(!Vq+d$Entna~M*6MvJL&h+|H*(EID=;RXSgL9vJ6E= za7IiX0v75vTZI~JzE=FciRBlVB1hz zxow1Pv~8TtZF|=?&o&SMv9Q7TI98Dc99IYMg9PWHaCr4LDfuqnd$}!e4!67&% zIo@$hbIf$icFc8n9Pc|ma4c~ga$L@oWTs`d&K#UMC39ou!OZ(v;aSEkdsbdngRI6` zZL+##bwYfHfN?Y z+nMWZzd9dg z`)3Dc$7QEwXJ@y_Zk^pOJ3qTqcGv8J?859J*~79cvPWi*$sV80vL|Lw&R(B=B>PGZ z&e7#G${CnbkuyAJWX`A@A!lOF&n0(- zx*}ast{7K}E7fIm*b

-
+
Panel!
@@ -20,7 +20,8 @@

A whole bunch of content

- Panel + Panel +
diff --git a/example/cordova/iOS/www/js/framework-events.js b/example/cordova/iOS/www/js/framework-events.js index 543eb64fa4..a84e1d1348 100644 --- a/example/cordova/iOS/www/js/framework-events.js +++ b/example/cordova/iOS/www/js/framework-events.js @@ -51,6 +51,12 @@ handleClick: function(e) { var target = e.target; + if(framework.Gestures.HAS_TOUCHEVENTS) { + // We don't allow any clicks on mobile + e.preventDefault(); + return false; + } + if ( ! target || e.which > 1 @@ -65,14 +71,11 @@ //|| target.getAttribute('data-ignore') == 'push' ) { // Allow it - console.log("EVENT: click", e); return; } // We need to cancel this one e.preventDefault(); - // TODO: should we do this? - // e.stopPropagation(); }, handlePopState: function(event) { @@ -89,7 +92,7 @@ framework.offGesture = framework.EventController.offGesture; // Set up various listeners - window.addEventListener('click', framework.EventController.handleClick); - window.addEventListener('popstate', framework.EventController.handlePopState); + window.addEventListener('click', framework.EventController.handleClick); + //window.addEventListener('popstate', framework.EventController.handlePopState); })(this, document, FM = this.FM || {}); diff --git a/example/cordova/iOS/www/js/framework-gestures.js b/example/cordova/iOS/www/js/framework-gestures.js index a9e494687a..26b7a08bef 100644 --- a/example/cordova/iOS/www/js/framework-gestures.js +++ b/example/cordova/iOS/www/js/framework-gestures.js @@ -1176,8 +1176,8 @@ // prevent default browser behavior when dragging occurs // be careful with it, it makes the element a blocking element // when you are using the drag gesture, it is a good practice to set this true - drag_block_horizontal : false, - drag_block_vertical : false, + drag_block_horizontal : true, + drag_block_vertical : true, // drag_lock_to_axis keeps the drag gesture on the axis that it started on, // It disallows vertical directions if the initial direction was horizontal, and vice versa. drag_lock_to_axis : false, diff --git a/example/cordova/iOS/www/js/framework-panel.js b/example/cordova/iOS/www/js/framework-panel.js index bdce6bd6ee..2f2ff18c11 100644 --- a/example/cordova/iOS/www/js/framework-panel.js +++ b/example/cordova/iOS/www/js/framework-panel.js @@ -6,10 +6,11 @@ isPanelOpen; function onTap(e) { + var el = e.target; + return togglePanel(e, el, el.dataset.togglePanel); + if(e.target) { - el = e.target; if(el.dataset.togglePanel) { - return togglePanel(e, el, el.dataset.togglePanel); } while(el.parentElement) { el = el.parentElement; @@ -50,6 +51,6 @@ } } - framework.on("click", onTap); + framework.onGesture("tap", onTap, document.getElementById('open-panel')); })(this, document, FM = this.FM || {}); diff --git a/example/events.html b/example/events.html index 1dc83e3fbd..302f297f9b 100644 --- a/example/events.html +++ b/example/events.html @@ -12,12 +12,38 @@ -webkit-transition: 0.1s ease-in-out all; -webkit-transform:translate3d(120%,0,0) ; } + #remove-box { + width: 200px; + height: 200px; + } + .relative { + position: relative; + } + button { + width: 100px; + height: 100px; + } + .overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 2; + background-color: red; + }
Tap me! Swipe me! +
+
Tap to remove me
+
+ +
+
diff --git a/example/events.js b/example/events.js index dba0246e7c..714ee65e92 100644 --- a/example/events.js +++ b/example/events.js @@ -8,6 +8,24 @@ var logEvent = function(data) { var tb = document.getElementById('tap-button'); var sb = document.getElementById('swipe-button'); +var rb = document.getElementById('remove-box-overlay'); + +window.FM.on('click', function(e) { + console.log('GOT CLICK', e); + logEvent({ + type: 'click', + event: e + }); +}, tb); + +window.FM.onGesture('tap', function(e) { + e.target.parentNode.removeChild(e.target); + console.log('GOT CLICK ON BOX', e); + logEvent({ + type: 'clickbox', + event: e + }); +}, rb); window.FM.onGesture('tap', function(e) { console.log('GOT TAP', e); @@ -24,13 +42,6 @@ window.FM.onGesture('touch', function(e) { }); }, tb); -window.FM.onGesture('tap', function(e) { - console.log('GOT TAP', e); - logEvent({ - type: 'tap', - event: e - }); -}, tb); window.FM.onGesture('release', function(e) { console.log('GOT RELEASE', e); logEvent({ diff --git a/example/events/drag.html b/example/events/drag.html new file mode 100644 index 0000000000..dd2b31bf65 --- /dev/null +++ b/example/events/drag.html @@ -0,0 +1,35 @@ + + + + Example + + + + + + + +
+
Drag me around!
+
+ + + + + + diff --git a/example/panels.html b/example/panels.html index 74e7beb920..2b4a41810d 100644 --- a/example/panels.html +++ b/example/panels.html @@ -13,7 +13,7 @@
-
+
Panel!
@@ -23,7 +23,7 @@

A whole bunch of content

- Panel + Panel
diff --git a/js/framework/framework-events.js b/js/framework/framework-events.js index 543eb64fa4..a84e1d1348 100644 --- a/js/framework/framework-events.js +++ b/js/framework/framework-events.js @@ -51,6 +51,12 @@ handleClick: function(e) { var target = e.target; + if(framework.Gestures.HAS_TOUCHEVENTS) { + // We don't allow any clicks on mobile + e.preventDefault(); + return false; + } + if ( ! target || e.which > 1 @@ -65,14 +71,11 @@ //|| target.getAttribute('data-ignore') == 'push' ) { // Allow it - console.log("EVENT: click", e); return; } // We need to cancel this one e.preventDefault(); - // TODO: should we do this? - // e.stopPropagation(); }, handlePopState: function(event) { @@ -89,7 +92,7 @@ framework.offGesture = framework.EventController.offGesture; // Set up various listeners - window.addEventListener('click', framework.EventController.handleClick); - window.addEventListener('popstate', framework.EventController.handlePopState); + window.addEventListener('click', framework.EventController.handleClick); + //window.addEventListener('popstate', framework.EventController.handlePopState); })(this, document, FM = this.FM || {}); diff --git a/js/framework/framework-gestures.js b/js/framework/framework-gestures.js index a9e494687a..26b7a08bef 100644 --- a/js/framework/framework-gestures.js +++ b/js/framework/framework-gestures.js @@ -1176,8 +1176,8 @@ // prevent default browser behavior when dragging occurs // be careful with it, it makes the element a blocking element // when you are using the drag gesture, it is a good practice to set this true - drag_block_horizontal : false, - drag_block_vertical : false, + drag_block_horizontal : true, + drag_block_vertical : true, // drag_lock_to_axis keeps the drag gesture on the axis that it started on, // It disallows vertical directions if the initial direction was horizontal, and vice versa. drag_lock_to_axis : false, diff --git a/js/framework/framework-panel.js b/js/framework/framework-panel.js index bdce6bd6ee..2f2ff18c11 100644 --- a/js/framework/framework-panel.js +++ b/js/framework/framework-panel.js @@ -6,10 +6,11 @@ isPanelOpen; function onTap(e) { + var el = e.target; + return togglePanel(e, el, el.dataset.togglePanel); + if(e.target) { - el = e.target; if(el.dataset.togglePanel) { - return togglePanel(e, el, el.dataset.togglePanel); } while(el.parentElement) { el = el.parentElement; @@ -50,6 +51,6 @@ } } - framework.on("click", onTap); + framework.onGesture("tap", onTap, document.getElementById('open-panel')); })(this, document, FM = this.FM || {});