繁体   English   中英

导航栏 JavaScript

[英]Navigation bar JavaScript

我正在编写一个代码来使用按钮打开和关闭导航栏我的代码如下

#DIV1{
    display:block;}

        <div id="DIV1">
        <ul class="topnav">
          <li><a href="#about">About</a></li>
          <li><a href="#contact">Contact</a></li>
          <li><a href="#news">News</a></li>
          <li><a href="#home">Home</a></li>
          </ul>

        </div>
        <button  onClick="abc()">HIDE</button>
    <script>
    function abc()
    {
        var togg = document.getElementById('DIV1')
         if (togg.style.display == "block")
        {
            togg.style.display="none";
        }

        else if (togg.style.display == "none")
        {
            togg.style.display="block";
            }

    }
    </script>

它不起作用我该怎么办或我做错了什么? 我已经跳过了导航栏的其他 CSS 属性。

它不起作用,因为您必须使用 javascript 或内联样式设置其显示才能通过 yourDiv.style.display 获取某些内容。 在你的情况下,当你在你点击链接时,显示未设置,然后你不能在你的输入,也不if没有你else if语句。 所以试试这个:

 var togg = document.getElementById('DIV1'); togg.style.display="block"; /* => I set a display value */ function abc(){ if (togg.style.display == "block") { togg.style.display="none"; } else if (togg.style.display == "none") { togg.style.display="block"; } }
 #DIV1 { display:block; } /*you can remove this rule. You are changing the display via javascript */
 <div id="DIV1"> <ul class="topnav"> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#news">News</a></li> <li><a href="#home">Home</a></li> </ul> </div> <button onClick="abc()">HIDE</button>

另一种方法:您可以简单地创建一个类来“隐藏”您的 div,然后使用classListtoggle切换它:

 function abc(){ var togg = document.getElementById('DIV1') togg.classList.toggle("myClass"); }
 .myClass { display:none; }
 <div id="DIV1"> <ul class="topnav"> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#news">News</a></li> <li><a href="#home">Home</a></li> </ul> </div> <button onClick="abc()">HIDE</button>

这是正确的代码:

 <style> #DIV1{ display:block;} </style> <div id="DIV1"> <ul class="topnav"> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#news">News</a></li> <li><a href="#home">Home</a></li> </ul> </div> <button onClick="abc()">HIDE</button> <script> function abc() { var togg = document.getElementById('DIV1'); if (togg.style.display == "block") { togg.style.display="none"; } else { togg.style.display="block"; } } </script>

如果我理解你的问题,试试这个:

 <!DOCTYPE html> <html lang="en"> <head> <style> #div1{ display:block;} </style> <script> function abc() { var togg = document.getElementById("div1") if (togg.style.display === "none")// 3 === { togg.style.display="block"; } else { togg.style.display="none"; } } </script> </head> <body> <div id="div1"> <ul class="topnav"> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#news">News</a></li> <li><a href="#home">Home</a></li> </ul> </div> <button onclick="abc()">HIDE</button> </body> </html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM