消失的下拉菜单
Disappearing drop down menu
我正在尝试创建一个消失的下拉菜单,该菜单消失在页面顶部,您只能看到"打开"一词。这将打开菜单,单词打开更改为单词关闭,单击时会使菜单再次消失。帮助将不胜感激。
<html>
<head>
<title>dropdown</title>
<link rel="stylesheet" type="text/css" href="dropdown_css.css">
<script type = "text/javascript">
function navagate(menu) {
var panel = document.getElementById(menu),maxh = "-362px", navg = document.getElementById('navag');
if (panel.style.marginTop == maxh){
panel.style.marginTop = "0px";
navag.innerHTML = "Close";
}
else {
panel.style.marginTop = maxh;
navag.innerHTML = "Open";
}
}
window.onload = function(){panel.style.marginTop = "-362px";}
</script>
<body>
<div id = "panel">
<ul>
<li>CIT</li>
<li>Blackboard</li>
<li>Mcomms</li>
<li>Tables</li>
<li>Exams</li>
</ul>
<div id ="sections_button">
<a onclick = "navigate ('panel')" id = "navag">Open</a>
</div>
</div>
</body>
</body>
</html>
#panel {
width : 160px;
height: 130px;
background-color: gray;
margin-left: 30px;
margin-top:20px;
}
#panel li {
list-style-type: none;
}
在这里,我做了一个JS小提琴,可能会帮助你:http://jsfiddle.net/942z0nhh/我根本没有玩弄样式。
我注意到的几件事:
你犯了一些错误,我认为如果你正确缩进,你不会犯这些错误。 看看这里,你两次关闭身体的地方:
<a onclick = "navigate ('panel')" id = "navag">Open</a>
</div>
</div>
</body>
</body>
其次,你有一些拼写错误:
<a onclick = "navigate ('panel')" id = "navag">Open</a>
与
function navagate(menu) {
您可以在那里看到,您的函数永远不会因此而被调用。
最后,您的"打开"和"关闭"在这里:
<a onclick = "navigate ('panel')" id = "navag">Open</a>
在您的函数覆盖的div 中。 该函数会将其更改为"关闭" - 但无论如何它对用户都是不可见的! 我把它移到上面,我希望这是有意义的。
如果您有任何其他问题,或者我误解了,请告诉我。
你也可以只用CSS来做。这是"css复选框黑客"。我有它不像你想要的那样,但它非常接近。将文本从打开更改为关闭也应该是可能的。
目前,我不知道如何将打开/关闭标签移动到ul列表下方。
*, html {
padding: 0px;
font-family: sans-serif;
}
/* Checkbox Hack */
input[type=checkbox] {
position: absolute;
display: none;
}
label {
display: block;
cursor: pointer;
content: "close";
}
/* Default State */
#wrapper {
display: block;
background: gray;
color: white;
text-align: center;
}
/* Toggled State */
input[type=checkbox]:checked ~ #menu {
display: block;
background: lightgray;
color: black;
top:0px;
}
.menuToggle ul{
display: none;
width: 100%;
}
#menu {
padding-top: 5px;
margin: 0px;
list-style: none;
}
<div id="wrapper">
<div class="menuToggle">
<label for="toggle-1">open</label>
<input type="checkbox" id="toggle-1"/>
<ul id="menu">
<li>CIT</li>
<li>Blackboard</li>
<li>Mcomms</li>
<li>Tables</li>
<li>Exams</li>
</ul>
</div>
</div>
使用 jQuery,你可以像下面的例子一样做。
我认为现在几乎就像你想要的那样。也许需要一些样式改进。
使用css黑客,我无法管理文本更改。使用js,您有更多的可能性。您还可以改进/修改动画。
$(function() {
var $menuButton = $('#openButton');
var $menu = $('#menu');
var btnToggleAnim = function() {
$menuButton.animate({opacity: 'toggle'}, "fast");
};
var menuToggleAnim = function() {
$('#menu').animate({
height:'toggle',
//opacity: 'toggle'
}, { duration: "slow" });
};
$('#closeButton,#openButton').on('click', function() {
menuToggleAnim();
btnToggleAnim();
});
});
*, html {
padding: 0px;
font-family: sans-serif;
}
a {
text-decoration:none;
}
#openButton {
display:block;
background: gray;
color: #fff;
text-decoration: none;
border: 2px solid lightgray;
border-radius: 15px;
}
#closeButton{
display: block;
background: gray;
color: #fff;
text-align: center;
border: 2px solid lightgray;
border-bottom-left-radius: 13px;
border-bottom-right-radius: 13px;
}
#wrapper {
display: block;
text-align: center;
}
#menu {
display: none;
background: lightgray;
color: black;
padding-top: 5px;
margin: 0px;
list-style: none;
}
#menu {
color: #000;
text-decoration: none;
border: 2px solid lightgray;
border-radius: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
<a href="#" id="openButton">open</a>
<ul id="menu">
<li><a href="#1">CIT</a></li>
<li><a href="#2">Blackboard</a></li>
<li><a href="#3">Mcomms</a></li>
<li><a href="#4">Tables</a></li>
<li><a href="#5">Exams</a></li>
<li><a href="#" id="closeButton">close</a></li>
</ul>
</div>
相关文章:
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- angular的下拉菜单
- 创建带有和不带有JavaScript的Bootstrap下拉菜单
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- JavaScript下拉菜单-部件在Mac上消失
- 下拉菜单在我进入链接之前消失了
- 如何使下拉菜单在一定时间后消失 JavaScript.
- 将鼠标悬停在下拉菜单上时,JQuery 悬停下拉菜单消失
- 消失的下拉菜单
- 在我到达链接之前,下拉菜单就消失了
- Jquery下拉菜单.单击时,子菜单将消失.因此,如何使子菜单在单击时保持不变
- Bootstrap 3.2-显示所有屏幕尺寸的折叠导航-下拉菜单消失
- 下拉菜单在子菜单上消失
- 使用导出工具时,显示条目下拉菜单消失
- 第二个下拉菜单在选择后消失
- 使下拉菜单消失时,点击任何东西,但菜单
- 鼠标悬停时Jquery UI Multicolumn自动完成下拉菜单消失
- WordPress中的JavaScript下拉菜单在我尝试将鼠标悬停在它上面时消失了
- 按钮将选择从下拉菜单输入到文本区域,文本立即消失
- 当鼠标不在链接上时,下拉菜单消失