我在这里只能使用折叠菜单。我设法找到了一个完全可以实现我想要的脚本的脚本,但恰恰相反。在脚本中,默认情况下,链接为“扩展”。我希望默认情况下我的链接是收缩的,当您单击它时,它会展开。
任何帮助将不胜感激!谢谢:)
代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<style type="text/css">
.show {display: none; }
.hide:focus + .show {display: inline; }
.hide:focus { display: none; }
.hide:focus ~ #list { display: none; list-style-type:none;}
@media print { .hide, .show { display: none; } }
</style>
</head>
<body>
<p>Lorem ipsum...</p>
<div>
<a href="#" class="hide">[Link]</a>
<a href="#" class="show">[Link]</a>
<ol id="list">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
</div>
</body>
</html>
只需反转CSS:
CSS:
#list, .show {display: none; }
.hide:focus + .show {display: inline; }
.hide:focus { display: none; }
.hide:focus ~ #list { display:block; }
我希望我对你的理解正确。我通常为此使用jQuery ...这是一个小演示:http://cssdeck.com/labs/omya4ax9HTML:
<a href="#" class="hide" data-toggle="#list">Toggle: show</a>
<ol id="list">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ol>
CSS:
#list {
display: none;
}
#list.open {
display: block;
}
JS:
$('[data-toggle]').on('click', function(){
var id = $(this).data("toggle"),
$object = $(id),
className = "open";
if ($object) {
if ($object.hasClass(className)) {
$object.removeClass(className)
$(this).text("Toggle: show");
} else {
$object.addClass(className)
$(this).text("Toggle: hide");
}
}
});
TJL
您可能想看看这个简单的Javascript解决方案。
当单击某个组件以使特定元素在可见或折叠模式之间切换时,可以调用一种方法。
一个JavaScript示例:
function toggle(elementId) {
var ele = document.getElementById(elementId);
if(ele.style.display == "block") {
ele.style.display = "none";
}
else {
ele.style.display = "block";
}
}
您可以在href或onclick事件中调用该方法。
如果有人还在寻找,这里是一个简单的jQuery代码,用于扩展和折叠任何内容,只要您在变量声明中正确选择了元素即可。
我将您的id =“ list”更改为class =“ list”。这样,代码可用于多个命令列表。您可以将其保留为id,但只知道您需要为每个元素编写一个单独的脚本。
<ol class="list">
<li>
<span class="menu glyphicon glyphicon-menu-down"> MENU</span>
<ul>
<li>Menu Item 1</li>
<li>Menu Item 2</li>
<li>Menu Item 3</li>
<li>Menu Item 4</li>
</ul>
</li>
</ol>
<script>
var $menu = $('ol.list li span.menu');
$menu.next().hide();
$menu.on('click', function () {
$(this).toggleClass('glyphicon-menu-up glyphicon-menu-down').next().slideToggle();
})
</script>
如果要在鼠标悬停在菜单上时展开或折叠菜单;您需要将脚本更改为此:
<script>
var $menu = $('ol.list li span.menu');
$menu.next().hide();
$menu.on('mouseover mouseout', function () {
$(this).toggleClass('glyphicon-menu-up glyphicon-menu-down').next().slideToggle();
})
</script>
这非常简单明了,您可以在任何要显示和隐藏内容的地方使用它。如您所见,它只需要较少的代码,并且不需要弄乱CSS,除非您想对菜单的外观进行样式设置。
尝试一下!我希望这对某人有帮助。