javascript - 将菜单悬停更改为单击/事件 CSS

标签 javascript css

我试图将我的菜单从悬停更改为单击,但如果我单击菜单,子菜单也会很快关闭,我想我需要一个用于 onclick 和切换的 javascript,但不知道如何完成。请帮助我是新手

/* menu */
 #menu{ margin:0px 0px; margin-top:67px; margin-left:90px; list-style:none; color:#fff; line-height:30px; display:inline-block; float:left;  height:-100px; width:1000px; }
            #menu1{ margin:0px 0px; margin-top:auto; margin-left:-50px; list-style:none; color:#fff; line-height:30px; display:inline-block; float:left;  height:auto; width:95px; }
    #menu a { color:#000; text-decoration:none; }
    #menu > li {background:#fff none repeat scroll 0 0; cursor:pointer; float:left; position:relative;padding:0px 10px; z-index:999 !important;}
    #menu > li a:hover {color:#B0D730;}
    #menu .logo {background:transparent none repeat scroll 0% 0%; padding:0px; background-color:Transparent;}
    /* sub-menus*/
    #menu ul { padding:0px; margin:0px; display:block; display:inline;}
    #menu li ul { position:absolute; left:-10px; top:0px; margin-top:30px; width:200px; line-height:16px; background-color:#FFF; color:#FFF; /* for IE */                       display:none; }
    #menu li:hover ul { display:block;}
    #menu li ul li{ display:block; margin:5px 20px; padding: 5px 0px;  border-top: dotted 1px #606060; list-style-type:none; }
    #menu li ul li:first-child { border-top: none; }
    #menu li ul li a { display:block; color:#0395CC; }
    #menu li ul li a:hover { color:#7FCDFE; }
    /* main submenu */
    #menu #main { left:0px; top:-20px; padding-top:20px; background-color:#FFF; color:#fff; z-index:999 !important;}

最佳答案

点击

在您的 HTML 代码中,您可以让 Javascript 操作在点击时发生:

<p onclick="clickedText()">Click Me!</p>

必要的 Javascript 代码是:

var clickedText = function() {
    //Insert Code Here That's On Click
}

要通过 id 访问元素,请使用以下 Javascript 代码:

var element = document.getElementById("id");

然后你可以使用:

element.style.display = "none";

速度

如果某些东西关闭得太快,而你正在使用 display: none;,那是因为你告诉浏览器这一秒什么都不显示。

您的 CSS 代码告诉浏览器不要显示子菜单。


CSS 代码

这是您的 HTML 文件示例可以派上用场的地方。您告诉浏览器以下内容:

#menu li:hover ul { /*Do stuff*/ }

这意味着它选择所有 ul in 悬停在 li 上的 in #menu

我认为 CSS Selector Reference会对你有很大帮助。


建议

  • 我建议您提供一段 HTML 代码。
  • 我建议你试试 this , this , 和 this教程。
  • 我建议您看一下 :not() CSS 选择器。

关于javascript - 将菜单悬停更改为单击/事件 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517747/

相关文章:

javascript - 如何在不改变时间的情况下将 Date 对象转换为 UTC?

css - 让这些图像跨越盒子的全宽

css - 讨厌的 IE6 <ul> <li> 阶梯错误

jquery - 输入字段调整大小,文本在一定长度后蠕变

javascript - 为什么使用 jQuery Mobile 的 css 中断箭头?

javascript - Hide/Show Div below select 取决于是否选择了一个选项

javascript - 切换元素 jquery

css - 带有绝对定位页面的粘性页脚

css - 为什么填充在 Chrome 中不起作用

javascript - 为什么我的动画不起作用?