diff --git a/src/pages/index.astro b/src/pages/index.astro index ac6197f..a0f7f75 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,21 +3,22 @@ import Layout from "../layouts/Layout.astro" import "../styles/index.css" --- - - + +
+ + + + + + + +
+
@@ -60,23 +61,23 @@ import "../styles/index.css" } } - const iframe = document.querySelector("#music") - const play = document.querySelector("#play") + const iframe = document.querySelector("iframe") const skip = document.querySelector("#skip") const available = document.querySelector("#available") as HTMLDivElement let phase = 1 - let timer: ExtendableTimeout | null + let timer: ExtendableTimeout | null = null const getTimeout = () => 2 ** phase * 1000 const message = (command: String, extra?: object) => (iframe as HTMLIFrameElement)?.contentWindow?.postMessage( JSON.stringify({ method: command, ...extra }), - "*" + "https://w.soundcloud.com" ) const playVideo = () => { + message("seekTo", { value: 0 }) message("setVolume", { value: 30 }) message("play") if (timer == null) { @@ -86,18 +87,21 @@ import "../styles/index.css" timer = null }, getTimeout()) } else { - message("seekTo", { value: 0 }) + // message("seekTo", { value: 0 }) message("play") } } - iframe?.addEventListener("load", () => { - setTimeout(() => { - message("play") - }, 300) - }) + window.addEventListener("message", (event) => { + let data = JSON.parse(event.data) - play?.addEventListener("click", playVideo) + if (data.method === "ready") { + message("setVolume", { value: 0 }) + message("play") + message("pause") + message("setVolume", { value: 30 }) + } + }) skip?.addEventListener("click", () => { if (phase >= 4) return alert("FAIL!!!!") @@ -109,7 +113,7 @@ import "../styles/index.css" if (timer == null) { playVideo() } else { - timer.extend(getTimeout()) + timer?.extend(getTimeout()) } }) diff --git a/src/styles/index.css b/src/styles/index.css index b57f3b5..42cd551 100644 --- a/src/styles/index.css +++ b/src/styles/index.css @@ -1,11 +1,28 @@ -#music { - position: absolute; - visibility: hidden; - bottom: 0; +iframe { + width: 20px; + height: 20px; + scale: 3; + border: none; + opacity: 0; } #play { - position: relative; + display: grid; + cursor: pointer; + + &:hover { + filter: brightness(80%); + } + + & > .fake-button { + pointer-events: none; + } + + & > * { + grid-area: 1 /1; + justify-self: center; + align-self: center; + } } #bar { diff --git a/src/styles/layout.css b/src/styles/layout.css index 6de7985..3c9b5c4 100644 --- a/src/styles/layout.css +++ b/src/styles/layout.css @@ -38,15 +38,16 @@ main { align-items: center; } -button { +button, +.fake-button { --border-radius: 2rem; position: relative; background: white; border: none; border-radius: var(--border-radius); - padding: 0.2rem 1rem; - margin: 1rem; + padding: 0.2rem; + margin: 0 1rem; display: flex; justify-content: center; @@ -62,7 +63,7 @@ button { } } -button::before { +:is(button, .fake-button)::before { --border-size: 5px; content: ""; border-radius: var(--border-radius);