From 6577ce16f8cf763d1369a8ddc76773d97de110a5 Mon Sep 17 00:00:00 2001 From: Guanran Wang Date: Sat, 23 Nov 2024 02:32:27 +0800 Subject: [PATCH] feat: add more buttons --- index.html | 7 +- public/{ => one}/beautiful.opus | Bin public/{ => one}/chicken.opus | Bin public/{ => one}/so.opus | Bin public/{ => one}/you.opus | Bin public/two/basketball.opus | Bin 0 -> 10316 bytes public/two/jump.opus | Bin 0 -> 5683 bytes public/two/rap.opus | Bin 0 -> 5843 bytes public/two/sing.opus | Bin 0 -> 9453 bytes src/main.ts | 116 ++++++++++++++++++++++++++------ src/style.css | 16 +++-- 11 files changed, 106 insertions(+), 33 deletions(-) rename public/{ => one}/beautiful.opus (100%) rename public/{ => one}/chicken.opus (100%) rename public/{ => one}/so.opus (100%) rename public/{ => one}/you.opus (100%) create mode 100644 public/two/basketball.opus create mode 100644 public/two/jump.opus create mode 100644 public/two/rap.opus create mode 100644 public/two/sing.opus diff --git a/index.html b/index.html index 85e2b54..8326768 100644 --- a/index.html +++ b/index.html @@ -14,12 +14,7 @@ 鸡音盒 -
- - - - -
+
diff --git a/public/beautiful.opus b/public/one/beautiful.opus similarity index 100% rename from public/beautiful.opus rename to public/one/beautiful.opus diff --git a/public/chicken.opus b/public/one/chicken.opus similarity index 100% rename from public/chicken.opus rename to public/one/chicken.opus diff --git a/public/so.opus b/public/one/so.opus similarity index 100% rename from public/so.opus rename to public/one/so.opus diff --git a/public/you.opus b/public/one/you.opus similarity index 100% rename from public/you.opus rename to public/one/you.opus diff --git a/public/two/basketball.opus b/public/two/basketball.opus new file mode 100644 index 0000000000000000000000000000000000000000..90095d1ef7c07a5084e5b0da9ba3338ce61b7b12 GIT binary patch literal 10316 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 C1@^oE literal 0 HcmV?d00001 diff --git a/public/two/jump.opus b/public/two/jump.opus new file mode 100644 index 0000000000000000000000000000000000000000..b9813c6013997ba8b79660dff578bb2526f0492c GIT binary patch literal 5683 zcmYM2Ra6uVw}yvqq&tW14y6YKhVHJR`Cz15Qd$}Wq`O-h1Qd`~BxUICkf9lw^ZB2D zowN7N`|kDZwXgQgtL@~Z4?qR{w?3wu&-|6Gs0rODq}m?7-l`4|dlXbjlKmJnR<={a@Sw;^a;6@5If;*8N}0B*ZVqFZ`GP-^FmzzZwAeyZHBLcaZHp z9kL!Nj3hx4A<2-mNGc>3lK=l35oodFhyF9Wz?YS9Bo*y$#CcZMn9~)>I7@Uy2U@a& zOSri_oMGn@G9O^|U(rW6 znUhb3Rtx7&iTAKct%$p=`jwI~$vBbEuZ1eE2Xsl=3V1S+XgThG!n?l6!iXBzHiO-hf zO1gdSGLipX(;#zfvHQz0a$*kE$q_}29MG2~mz{&&M=-38-LKB0_Rm;fY3Kkx>Q1P` z=bkx7w|^>W4||Orf`b%~m9_^OBlcnb+HTCvMlAB9{3Ohrsfi?2!)tv+RkV_7tOw`SY?v}7gy6{ zcV9%*sHM$}?Y&PFW9%i~gV6&w1(+rDl%iCBPjp7W>U)d^)SSeAv%AQ^!4C4-zxa9< zeDD(Ixs4}%SV~M2b$%r*%thTN74t5SK9Q@4yuhZKGN)U&jIO`cmgFjxGM#UCCmRJV z;K4D8i9LT`0i;azh~kgC{(YkOx_qNl z+7NL*|B!s@(grc)a0I99@>*4_ZclhCYC;UDgGPRnH0_caFjXr-bv2{dUifl^)&%F; z#<%{&PtdwJ8Jti8Jcn^%lS>imZ67GT9PpAlza(V^AyvxoXdqydh$6oWZPpSA;cwZ`%qH5}>yjKf{n^=mwy)s2>(o*V z9mU0`FoN(9wkLrJnpye<@&&ryO}<7vh1>{uVy!7}Pl(4q@;=je-UQt=`N5rm@teVVKGIqUv97b&{Gu-6K z%EMseUwHs#)sqsMjQGxEC77!9*n6EdF3*VlB1^?QIX3u$ptN^1#x=j4;?RC+J4Zh@ z*VwGo8=*B+t5MaIv2Pz5IuRgV&pL#72XdjIK zxG?<*lWXu~e@EId7v9E~_Nj$;OnPc!KwI>QhGv<-S1g}39uDTieP-E{$hTy|D==ks zo>u4V_aeHigl=@{fj=i^0|_%3kb^|z2j(x5jic&5`V*efD3Tbu`gx$r0U{c>nV39T zLV9{PiofJ2`x_J{t%|eF-Vah13U|P2pe5sMA<$1o)Z5JCOm$&8*LM4l|Grgy&W&aM zg5j+T4tGi$H<1D)g2EiTF-WxS44l%@%DX*YeZtoFH6)nUPtUZQ-ErRIT1=mo#iGjYwLtq5}iu;q}xAFA=0^o zIv*fZ-1qU=c~k9EHEa;FE@4tj$tw|p4Av&uPhT6}(a(fm2a_3U`>R-01hr2=|d z&Kx_uQLYXP8*WRqvgk6e{V*P0jA=%(Glgko5u%(y4_ErxuyvIO)tCAqtRCWl(qXOB zQ^YvU4aOg8@)xZS6O=l!YCr2h(Y6UP$V`t0093(P2nw9GYk|>r9%7pUjP2=!tSHXI zGack)B-{Ov>J_hEkJ3!t_;`76TGV+R#`uiTj3lRF)SlLYv$&s0S(WEQfvv)V%nH!# z>5==Ae&fxx3}fpkU3W#{ZlX$uU_fjY8`$a8_{v;JeE88^DIW#@M=P&2^awz*93!uP zq?z&%haV6pKn|Yu@*$tDs$5lUwQ7&=qSB@+?zCnx<8`7?N7Ea|4v3z5+aI*c>(7=j(4OcHhbsEQ+9AOvv@=uf z*yiCzR+6}9%6iZ7KtP2K1EKEkWk;)SF>ge`^_iDi$`b-)Q%rbPo9mWgrQp00yX zxRfvXI3`1O`LQSwKZ{WF^tLG)Vh^~o%}@!5^Npb}yTMBxArZQd_7kx=+<9I)%=fxd zA=v_Qw*>)reBSc?(IZp77*&lST#|O)_2L3Vc=5dU^OXY@E8{zRYc8xCeZ3muGi-^f zvF0@U-KnO#OE_SW6WaOU1-Pfhi#sSQh$kyeG9rsJ`4|gFswMx(C&pgy(KMAJ>4SyZ z4O2u^ux~1*3{-2PkF7~NlikwY*H$(IccwRl(#R>kw}0C4@!b1LrP68+ioRi4W2E{7 zktdrW1}p8do%pWM-HL!Q+?l;cd|G8O?7prBH@`sj$((3Aq64ScRpAFcEy_S>Wqu{D z*>m>AZaf6APR3}*H1$G@i`xx?$Q$m5+|5{XwKi^$osS3wx8&y*c+5j*k(v5HxLFkF z_cjY5cC`N8vQ}iaBW`<>;nSZodzS-nTP>R(xiuYZXM5E|Q4+0@qX%S2!tl?54C4`` z)~MTy&si6(#J@1SWkR%Td7LICr?)b%J_D$-0iPv!t z7W~jceG<&Jp1uMWhXbwWg!0CvNAS;|N$lxK38>ae$#OCC7B4cWI|W(<1ZiOHIk74V ztpQpY*3aZPq(VCuCgIfPu~wW8RL@xND0N})18VmKTUAbRK9^qT!FWyXY&OdU>_w40~AC4`$}$pTbov+qmDn0}a0FEYhH(xmj=(eIHp? zt9(Qph3VPCoc(L=AW;OP9EGf!ag{}=7Z$3gL9teQu@;N)^C$zc z_(kROP{iZo4A1}DBi)V)+;5EG9i5(Cs~3@NIlv@1&DYQYg(f&^5S(qdz1ZB)$=~S zpZ(@`q`8bdgRUD+7u-duUVBSGxk_3&4z)(sU{y5cSK63n`eRXPPg6KNaB0iZ=+{|G zcFUCN;I6pDsxjy6C+}l>N;cH7PyV*fIrmCS zSZcH?+k7cOWy|uu@cS(J_KH4b^{rI^^CC@x8g_3td_<`4Hf{Mj_rtLTve;i=5zQF5 z- zx)fZO16E#^G9s-Sm44lrs_a)0@=SHJ(1K%tn@;F7bq|=#tl$4&tOh7DCJ~D9B)(1zaFxOmdq3Sk!W6^ z_0|khh^eKDQq?;rwtx<~>w2RV0!rT{Re4xheb5Jq3);r!X3V;(Av5OMV6H zS?yQ06$z^`K*)BpJKvJ za4p!#ERtoqy-6eei@2vwlFwJt>qj0TH{ zMz+tkdcyUql+SLA81eI0x^i$_Ige-i*LuvdMi{eIy9Kkgup6iz-x~2Q_xsp~FrRgd zm1zuqH6ATsYGNYsv2uOy@8NH?qG7&0Bxc67YWXSYH|;m7DVB5PTVaI`!BZ3k-!G?m zZ@BcEUy`jDWK5n5-(gBM@+())1vWxn(BN(QHY|4#Y0fD$#5+*%Q!ENab(AE0zR6c# z>K|C2J_10#>J-|i8}ds3L%NOsxW*A$k=AS|p(+!?I*U+n&b7DXmt=pn&jc-JIPdDY1 zjf51THtGn734b}(jInIa-naDCwSaMs)eAK`EMEt}aFwBu{*TihW<~W+6zoTA3st8+ zS<57y;dBaE_L!lYXVzEREsfcPG%=tHsN1Y#INCpIeY#-)kEVl@~G56TS$L2`bBM znsWy9^G`f1l}F&1s-6Pp*~BFp3Eh~0uBDu5|%Y;3zpPxz~av>tH%GN|u_uT5AOfm1Bud1YMl#{hr-z@^U zxOs~T+@;fRWJmmjGYK0~=vLhUQ{zrkm4c}BG@*^uaDdyqv2|}FcJCVYJW!o>yy%6D zD4VMo-rO%9!8Z_?PJ1A)z1(2w3yiX`!D|If@i<3eGYx;TmE_X^lE5PBW}RmD z)K65CYcOHR6rR^cp#%__$f@%IqmQ`((|;J^{b?ddS#DO(DKE9O`6v?nwr0_Vk1HKA z;>bJYdyOJq4!>F&j3W|oQG45P>l0tGT-DyF{#dJ%E|1VJNRGUNN>q_$wv=XT*t(q& z@3Y?KyI8$eHr?_Ul*+ynW$3^acO4DNi4MWqN~J7J?Nu!lqE`gHd}H@%`YVPPF!ml# z*uWJnB%p0Xm67JV#Z$b{d8h)T+UQ^?&hA~*gv}q+I^Uz0ZDrUrus|7xFKp#_8{18R z{ZWWM{9wr#AHUb<+s1E3rhhpktDV=mj}X~!<{t5t(iWDmhm>qL`PcyfS5N9Hw!R&_ z4!Ybe5VCh8X||?j<=REo!X?SAe06mG?t`O1IwO4f&=`p3IYYm!$g7QJPv4-r^{%W$ z@gQ7+M+Vs8AM~)%@=^_@?$ju+Doi;D@_Zi$R^AMbrghqXbo(bG=-F(^8K%YYtWQk0 z)l&i1tQBf0WURD-B4%RIR#Umd18xusd$5;GxX*4q?DTmKY$oSXB`3flH=&8c0ql1i z!XY*gQ8O>ewuT9#vw`LowjVuOFZ>Kuq|j!IBDR;rJ&FJFbuy z9p3$IwfPiNRPTBU+rPp@LmP9Vf|GuijhRVYYA^Qx8Vd#`*zCmv)t>7g`p*d>*;7{qV89gu+u*I&UlEQ6~_uu{T4#bA%YDM|Rr> z2eTGRrhVz<#zTX7F*)!;KdO6RB{%ySYB~qFuT+cKgit+-hyA01Wx1$x`kZsIH=OPr zS|Uk7EOxoL{oF#-G_cEV)*K6e`o@Y^UgNq#KYTo~i=X_V3SaxUF9Wz@pQNp_aGI&= zpW%c$ya+RUdUuELr}<@n=2(*ocGXHA%pS68`12?}EXv>whH=sr^JgkpU1`+d*9eOL zf?6WteK_h1uYYk-W!TyHb52mO2wVe8W(PC1K4Jo>TZVy~LU;bIg4mhMZJ)z7x{HOv zCOh@7v;CXJS>~`CXsZ!oy(dyvelbTkd1}2xs2s=1m$p5yom!w?ZhP(O9(-}dN>SrC zC8v0Dn>3eR&aCXNZ+21M&g}`CR6T+`c(>!ZMhRSK`t97qn4L7f_oZ{gA6xY>zC$@f z7Fw2`VnLxxyI~+2K7Ay>3k88IDyPoGaR<|_Cf3FYgzx1ojL#3OhKG?=_4s=W(+`en z0^9A!nV^K1#CIvQC}{Ke#yA8(<^*q&PEKse&oJfapYO-Hv-UpdR1ms@FC&7?@LKV$ zl8k@i_pZ!ZhjQ^RGfA^TMRN5~HorTwGr`Y@-*i>=>k~zY{gbq%5a=$eVh254jU^tJ WopYFV!{Ke2+C^0nL#=Vm%>5t7ncVUK literal 0 HcmV?d00001 diff --git a/public/two/rap.opus b/public/two/rap.opus new file mode 100644 index 0000000000000000000000000000000000000000..4ae4d6b133b529cd00f0a6faabd9ac6623934d42 GIT binary patch literal 5843 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 literal 0 HcmV?d00001 diff --git a/public/two/sing.opus b/public/two/sing.opus new file mode 100644 index 0000000000000000000000000000000000000000..9aa80e06bae2054d54779f4952389928ae87cd77 GIT binary patch literal 9453 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 literal 0 HcmV?d00001 diff --git a/src/main.ts b/src/main.ts index ef0f981..02d2e74 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,3 +1,11 @@ +type Button = { + id: string; + text: string; + key: string; + code: string; + file: string; +}; + const audioCache: Record = {}; const audioPlay = async (url: string) => { @@ -17,29 +25,93 @@ const audioPlay = async (url: string) => { source.start(); }; -const chicken = document.querySelector("#chicken")! as HTMLButtonElement; -const you = document.querySelector("#you")! as HTMLButtonElement; -const so = document.querySelector("#so")! as HTMLButtonElement; -const beautiful = document.querySelector("#beautiful")! as HTMLButtonElement; +const buttons: Button[][] = [ + [ + { + id: "chicken", + text: "鸡", + key: "1", + code: "Digit1", + file: "/one/chicken.opus", + }, + { + id: "you", + text: "你", + key: "2", + code: "Digit2", + file: "/one/you.opus", + }, + { + id: "so", + text: "太", + key: "3", + code: "Digit3", + file: "/one/so.opus", + }, + { + id: "beautiful", + text: "美", + key: "4", + code: "Digit4", + file: "/one/beautiful.opus", + }, + ], + [ + { + id: "sing", + text: "唱", + key: "Q", + code: "KeyQ", + file: "/two/sing.opus", + }, + { + id: "jump", + text: "跳", + key: "W", + code: "KeyW", + file: "/two/jump.opus", + }, + { + id: "rap", + text: "rap", + key: "E", + code: "KeyE", + file: "/two/rap.opus", + }, + { + id: "basketball", + text: "篮球", + key: "R", + code: "KeyR", + file: "/two/basketball.opus", + }, + ], +]; -chicken.onclick = () => audioPlay("/chicken.opus"); -you.onclick = () => audioPlay("/you.opus"); -so.onclick = () => audioPlay("/so.opus"); -beautiful.onclick = () => audioPlay("/beautiful.opus"); +buttons.forEach((row) => { + const container = document.querySelector(`#cxk-container`) as HTMLDivElement; + const buttonGroup = document.createElement("div"); -document.onkeydown = function (e) { - switch (e.key) { - case "1": - audioPlay("/chicken.opus"); - break; - case "2": - audioPlay("/you.opus"); - break; - case "3": - audioPlay("/so.opus"); - break; - case "4": - audioPlay("/beautiful.opus"); - break; + container.appendChild(buttonGroup); + + row.forEach(({ id, text, key, file }) => { + const button = document.createElement("button"); + button.type = "button"; + button.id = id; + button.textContent = text; + button.onclick = () => audioPlay(file); + + const buttonKey = document.createElement("p"); + buttonKey.textContent = key; + + buttonGroup.appendChild(button); + button.appendChild(buttonKey); + }); +}); + +document.onkeydown = (e) => { + const button = buttons.flat().find((b) => b.code === e.code); + if (button) { + audioPlay(button.file); } }; diff --git a/src/style.css b/src/style.css index 4708f28..ae06b25 100644 --- a/src/style.css +++ b/src/style.css @@ -3,13 +3,19 @@ @tailwind utilities; @layer components { - .chicken-button { - @apply relative py-3 px-4 inline-flex items-center gap-x-2 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg text-sm font-medium focus:z-10 border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-900 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-800; - counter-increment: index; + #cxk-container { + @apply flex flex-col gap-2; } - .chicken-button:before { + #cxk-container > * { + @apply inline-flex rounded-lg shadow-sm; + } + + #cxk-container > * > * { + @apply relative h-12 w-16 justify-center inline-flex items-center gap-x-2 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg text-sm font-medium focus:z-10 border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-900 dark:border-neutral-700 dark:text-white dark:hover:bg-neutral-800; + } + + #cxk-container > * > * > * { @apply absolute top-1 left-1 text-xs text-neutral-500; - content: counter(index); } }