HTML - скрыть и показать div, отображая none - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь устроить шоу и спрятаться div. Я использую учебник из w3schools (https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_toggle_hide_show), но в этом случае div уже показан, а затем вы скрываете его, в то время как мой скрыт, а затем отображается. Так что в примере я просто добавляю display: none; к #myDIV:

<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    #myDIV {
      width: 100%;
      padding: 50px 0;
      text-align: center;
      background-color: lightblue;
      margin-top: 20px;
      display: none;
    }
  </style>
</head>

<body>

  <p>Click the "Try it" button to toggle between hiding and showing the DIV element:</p>

  <button onclick="myFunction()">Try it</button>

  <div id="myDIV">
    This is my DIV element.
  </div>

  <p><b>Note:</b> The element will not take up any space when the display property set to "none".</p>

  <script>
    function myFunction() {
      var x = document.getElementById("myDIV");
      if (x.style.display === "none") {
        x.style.display = "block";
      } else {
        x.style.display = "none";
      }
    }
  </script>

</body>

</html>

Когда я впервые нажимаю кнопку Try it, div не отображается ... Почему? С этого момента, если я повторю его, он будет отображаться и исчезать нормально ... Как это исправить? Ty

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

В #myDIV вы установили display: none, удалите эту строку, и она автоматически отобразится

0 голосов
/ 03 мая 2018

Потому что в первый раз x.style.display не определено!

Измените ваше состояние на if (x.style.display === "none" || !x.style.display)

<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    #myDIV {
      width: 100%;
      padding: 50px 0;
      text-align: center;
      background-color: lightblue;
      margin-top: 20px;
      display: none;
    }
  </style>
</head>

<body>

  <p>Click the "Try it" button to toggle between hiding and showing the DIV element:</p>

  <button onclick="myFunction()">Try it</button>

  <div id="myDIV">
    This is my DIV element.
  </div>

  <p><b>Note:</b> The element will not take up any space when the display property set to "none".</p>

  <script>
    function myFunction() {
      var x = document.getElementById("myDIV");
      if (x.style.display === "none" || !x.style.display) {
        x.style.display = "block";
      } else {
        x.style.display = "none";
      }
    }
  </script>

</body>

</html>
...