我的页面左侧有一个小小的导航栏。您在其左侧有MainNavigation项目符号,然后当您点击其中一个点时,您有一个包含子页面链接的列表。 我在导航栏的右侧添加了一个小按钮,这样我就可以关闭它并为实际内容提供更多空间。
现在是棘手的部分。我希望当菜单关闭时,主导航项不会刷新页面或转到任何链接。他们应该再次打开然后右键菜单。
这里不能提供整个代码是我所做的想法
$(document).ready(function() {
$("#hideButton").click(function() {
$("#sidebar-content").toggle("slide");
});
});
.leftnavigation {
height: 100vh;
position: fixed;
}
.icon-bar div {
padding: 8px;
display: block;
transition: all 0.3s ease;
color: white;
font-size: 18px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navigation" class="leftnavigation">
<div class="icon-bar" style="float: left; height: 100%; background-color: #2D4400">
<div>Test</div>
</div>
<div id='sidebar-content' style="float:left; width: 215px; background-color: #385400; height: 100%;">
<a id="hideButton"></a>
<li><a>Test</a></li>
</div>
</div>
我使用Primefaces中的<a>
标记代替<p:link>
代码。
答案 0 :(得分:1)
我就是这样做的
(function(){
var buttonList = document.getElementsByClassName("toggle");
for(var index = 0; index < buttonList.length; index++) {
buttonList[index].addEventListener("click", function(event){
var nav = document.getElementById("sidebar-content");
if(nav.classList.contains("open")) nav.classList.remove("open");
else nav.classList.add("open");
});
}
})();
&#13;
#navigation {
position: fixed;
bottom: 0;
left: 0;
top: 0;
}
#sidebar-content {
background-color: #385400;
transition: all 1.2s;
overflow: hidden;
height: 100%;
float: left;
width: 0;
}
#sidebar-content.open {
width: 215px;
}
.icon-bar {
background-color: #2D4400;
height: 100%;
float: left;
}
.icon-bar>div {
transition: all 0.3s ease;
font-size: 18px;
display: block;
padding: 8px;
color: white;
}
.toggle {
cursor: pointer;
}
&#13;
<div id="navigation">
<div class="icon-bar">
<div class="toggle">Test</div>
</div>
<div id="sidebar-content">
<a id="hideButton"></a>
<ul>
<li>
<a>Test</a>
</li>
</ul>
</div>
</div>
&#13;