javascript - 如何在用户单击菜单按钮时弹出菜单?

标签 javascript html css

我是网络开发的新手,没有太多经验。我一直在尝试创建一个菜单,该菜单在用户单击时可见。我已经能够使它弹出,但它不会保持可见。它变得可见一秒钟,然后再次变得不可见。我也尝试过使用“显示”属性。但是,这具有相同的结果。这是我的代码:

<head>
<script type="text/javascript">
    function opnmenu () {
        document.getElementById("menu").style.visibility="visible";
    }
</script>
</head>
<body onLoad="document.getElementById('menu').style.visibility='hidden';">
    <div id="menubar">
        <table>
            <tr>
                <td>
                    <div id="menuimg">
                        <form>
                            <input type="image" class="menubut" src="menu.png" alt="submit" onClick="opnmenu()">
                        </form>
                    </div>
                </td>
            </tr>
        </table>
    </div>
    <br>
    <h1> Entrepreneur</h1>
    <hr>
    <div id="menu">
        <ul>
            <li>Home</li>
            <li>Motivation</li>
            <li>Books</li>
            <li>Videos</li>
        </ul>
    </div>
</body>

任何帮助将不胜感激。 谢谢。

最佳答案

这是一个使用纯 javascript(一些代码来自其他评论)和更合适的 HTML5 的示例:
http://jsfiddle.net/59su4/1/

visibility: hidden 的问题在于,如果菜单是可见的,菜单将占据它通常占据的位置。下面是一个带有 visibility 属性的例子:
http://jsfiddle.net/59su4/2/

(注意隐藏菜单占用的空白空间)

[编辑]在作者发表评论后,我将 HTML、JS 和 CSS 混合到一个代码中以显示每个元素在页面中的位置。

整页

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>My menu is ALIVEEEE</title>
        
        <style>
            .menu {
                display: none;   
            }
            
            .menu.opened {
                display: block;
            }
        </style>
    </head>
    
    <body>
        <a href="" class="open-menu">Toggle menu</a>
        
        <nav class="menu">
            <ul>
                <li>Home</li>
                <li>Motivation</li>
                <li>Books</li>
                <li>Videos</li>
            </ul>
        </nav>
        
        <p>
            To facilitate the process, AI Lab hackers had built a system that displayed both the "source" and "display" modes on a split screen. Despite this innovative hack, switching from mode to mode was still a nuisance.
        </p>
        
        <script>
            var openMenuBtn = document.getElementsByClassName('open-menu')[0],
                menu        = document.getElementsByClassName('menu')[0];
            
            openMenuBtn.addEventListener('click', function ( e ) {
                // We don't want the empty link to be followed
                e.preventDefault();
                // Toggle the menu
                menu.classList.toggle('opened');
            }, false);
        </script>
    </body>
</html>

关于javascript - 如何在用户单击菜单按钮时弹出菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24809097/

相关文章:

java - 在 Javascript 中获取 userPrincipal

javascript - 在 Wordpress 中随机选择颜色

javascript - 正则表达式允许数字大于 0.5

javascript - 将输入值与数据库 Coldfusion 中的值进行比较

javascript - 如何从webos打开 "home screen"

css - 在 Chrome 中引用页内 SVG

javascript - 如何在 Ecmascript 6 中加载 css 文件

javascript - 我的函数没有被调用

html - reddit 如何创建没有任何边距的顶部标题?

javascript - 如何更改背景图片?