Script na skrývání DIVů

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod barevnej3 9. 9. 2022 13:37

Jak skrýt jedním tlačítkem více div najednou?
Kód: Vybrat vše
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div id="box1" style="background-color: red; width: 100px; height: 100px">
      Box 1
    </div>
    <div id="box2" style="background-color: green; width: 100px; height: 100px">
      Box 2
    </div>
    <div id="box3" style="background-color: yellow; width: 100px; height: 100px">
      Box 3
    </div>

    <button id="btn">Hide div</button>

    <script>
    const box = document.getElementById('box1');

    const btn = document.getElementById('btn');

     btn.addEventListener('click', function handleClick() {
        if (box.style.display === 'none') {
          box.style.display = 'block';

     btn.textContent = 'Hide div';
    } else {
     box.style.display = 'none';

     btn.textContent = 'Show div';
  }
});
    </script>
  </body>
</html>


Takto to funguje vždy pouze na jeden div, jak to upravit abych jedním tlačítkem skryl třeba box1 a box3 ?
barevnej3
Kolemjdoucí

Odeslat příspěvekod zivan 9. 9. 2022 13:47

Udelat si treba pole se seznamem id, ktere chces skryt a pak cyklus, ktery je vsechny skryje?
Motorola Edge 20; HP Elitebook 845 G8 (Ryzen 5650U, 32GB RAM, WD SN570 1TB, 14" fullHD IPS) + HP USB-C G5 Essential + 29" LG 29UM65 + 22" Eizo S2202W
zivan
Junior

Odeslat příspěvekod barevnej3 9. 9. 2022 13:54

Zkoušel jsem třeba
Kód: Vybrat vše
const box = document.querySelectorAll("#box1, #box3");
Jenže tak to nefunguje.
barevnej3
Kolemjdoucí

Odeslat příspěvekod Wikan 9. 9. 2022 15:08

Tak to prožeň cyklem, ne?
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod barevnej3 10. 9. 2022 09:09

Zkouším vše možné, je fakt že tomu vůbec nerozumím jen skládám co najdu na netu.
Jsem myslel že to tu pro někoho bude hračka.
No nic jdu hledat dál, když na to příjdu tak se podělím o výsledek.
barevnej3
Kolemjdoucí

Odeslat příspěvekod Wikan 10. 9. 2022 10:11

Však ona to hračka je. Proto jsem ti psal, ať použiješ cyklus.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod barevnej3 10. 9. 2022 10:16

Jako script opakovat pro každý div zvlášť aby šel jeden druhým. To bude při více kódu obrovské. Jsem právě myslel že to půjde tam nějak jen napsat všechny kody do jednoho řádku a script už si to pobere bez ohledu na to kolik tam těch kódů je napsáno.
barevnej3
Kolemjdoucí

Odeslat příspěvekod Wikan 10. 9. 2022 10:18

Však ano. Použij cyklus.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Just_jo 10. 9. 2022 11:30

Kdybys chtěl použít jQuery, tak je ten cyklus jednoduchý - asi takto
Kód: Vybrat vše
$("div").each(function(){...});
Just_jo
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 10. 9. 2022 12:13

Ne že by byl v čistém JS nějak zásadně složitější.
Kód: Vybrat vše
const ids = ["id1", "id2", "id3"];
ids.forEach(id => {
   ...
});
Wikan
Moderátor
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků