Add tooltips on homepage

This commit is contained in:
Vojtěch Káně
2021-09-24 01:25:04 +02:00
parent 46ccc879da
commit 08c6afeecd
3 changed files with 91 additions and 1 deletions

View File

@@ -34,6 +34,18 @@
<input type="submit" value="Připojit do hry"> <input type="submit" value="Připojit do hry">
</form> </form>
{{- end }} {{- end }}
<button class="help" aria-label="Zobrazit nápovědu"></button>
<div class="message">
<p>
Takto se připojíte k již založené (i probíhající) hře.
</p>
<p>
<strong>Kód hry</strong> získáte od jejího organizátora (vidíte-li na sdílený monitor, je napsán v závorkách za názvem kvízu).
</p>
<p>
<strong>Jméno hráče</strong> se zobrazuje ostatním hráčům při hře i následně na výsledkovce. Doporučuje se volit jej s ohledem na dobré mravy a případné nároky na svou anonymitu, ochranu osobních údajů apod.
</p>
</div>
</section> </section>
<section> <section>
<h1>Zorganizovat novou hru</h1> <h1>Zorganizovat novou hru</h1>
@@ -49,6 +61,18 @@
<input type="submit" value="Začit hrát"> <input type="submit" value="Začit hrát">
</form> </form>
{{- end }} {{- end }}
<button class="help" aria-label="Zobrazit nápovědu"></button>
<div class="message">
<p>
Takto se stanete organizátorem hry. Sami nemůžete odpovídat, ale získáte kód pro připojení ostatních hráčů.
</p>
<p>
<strong>Kód kvízu</strong> získáte od jeho autora, který jej získal při vytvoření.
</p>
<p>
<strong>Jméno organizátora</strong> se zobrazuje ostatním hráčům při hře. Doporučuje se volit jej s ohledem na případné nároky na svou anonymitu, ochranu osobních údajů apod.
</p>
</div>
</section> </section>
<section> <section>
{{- with .Form.NewGame }} {{- with .Form.NewGame }}
@@ -59,7 +83,7 @@
{{- end }} {{- end }}
<h1>Vytvořit nový kvíz</h1> <h1>Vytvořit nový kvíz</h1>
<p><a href="/template" download>Šablona nového kvízu</a>.</p> <p><a href="/template" download>Šablona nového kvízu</a>.</p>
<p><a href="/help">Nápověda</a></p> <p><a href="/help">Popis formátu</a></p>
<form id="new" enctype="multipart/form-data" method="post" action="/game"> <form id="new" enctype="multipart/form-data" method="post" action="/game">
<label>Jméno kvízu: <input type="text" name="name" placeholder="Jméno kvízu" required value="{{ .Title }}"></label> <label>Jméno kvízu: <input type="text" name="name" placeholder="Jméno kvízu" required value="{{ .Title }}"></label>
<label>Jméno autora: <input type="text" name="author" placeholder="Jméno" required value="{{ .Name }}"></label> <label>Jméno autora: <input type="text" name="author" placeholder="Jméno" required value="{{ .Name }}"></label>
@@ -67,5 +91,20 @@
<input type="submit" value="Vytvořit"> <input type="submit" value="Vytvořit">
</form> </form>
{{- end }} {{- end }}
<button class="help" aria-label="Zobrazit nápovědu"></button>
<div class="message">
<p>
Takto vytvoříte nový kvíz (sadu otázek a odpovědí), který následně můžete použít při zakládání hry.
</p>
<p>
<strong>Jméno kvízu</strong> se zobrazí organizátorům i hráčům při hře.
</p>
<p>
<strong>Jméno autora</strong> je doplňkový údaj na podrobnostech kvízu; při následné hře vidět není. Přesto se doporučuje volit jej s ohledem na případné nároky na svou anonymitu, ochranu osobních údajů apod.
</p>
<p>
<strong>Kvíz</strong> je CSV soubor formátu popsaného na samostatné stránce. Nejpohodlnější je vyjít z dodané šablony.
</p>
</div>
</section> </section>
{{ end -}} {{ end -}}

View File

@@ -10,6 +10,7 @@ section {
border: 2px solid black; border: 2px solid black;
margin: 2rem; margin: 2rem;
padding: 1rem; padding: 1rem;
position: relative;
} }
#join, #play, #new { #join, #play, #new {
@@ -21,3 +22,40 @@ section {
color: red; color: red;
font-weight: bold; font-weight: bold;
} }
.help::after {
content: "?";
font-weight: bold;
line-height: 1.5rem;
}
.help {
border: 2px solid;
border-radius: 50%;
display: flex;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
position: absolute;
right: 0;
top: 0;
padding: 0;
background: none;
cursor: pointer;
}
.message {
position: absolute;
right: 1.5rem;
top: 0;
display: none;
z-index: 1;
}
.message.show {
display: block;
background-color: white;
border: 2px dotted black;
width: 50vw;
max-width: 20rem;
}

View File

@@ -4,4 +4,17 @@ document.addEventListener("DOMContentLoaded", () => {
const code = joinForm.querySelector("input[name=\"code\"]").value; const code = joinForm.querySelector("input[name=\"code\"]").value;
joinForm.action = "/play/" + encodeURIComponent(code); joinForm.action = "/play/" + encodeURIComponent(code);
}); });
document.body.addEventListener("click", () => {
for (const help of document.querySelectorAll(".message.show")) {
help.classList.remove("show");
}
});
const helps = document.getElementsByClassName("help");
for (const help of helps) {
help.addEventListener("click", (e) => {
e.stopPropagation();
console.log(e.target);
e.target.parentElement.querySelector(".message").classList.toggle("show");
})
}
}); });