我有一个固定的侧导航菜单,高度为100%。当你点击角落里的汉堡包时,它的宽度会根据你窗口的大小而被设置为15%-100%。当您单击x时,其宽度被设置为0。百分比是相对于身体设定的。这似乎是伟大的工作,直到我添加了内容,以便我可以滚动。当你向下滚动,然后打开/关闭侧导航,它会把你带回到页面的顶部。
我对JavaScript不太熟悉,所以里面可能有问题。我搜索了谷歌和StackOverflow,但什么也没找到。可能我不是在寻找正确的问题。我试着把所有的百分比都换成vh和vw,但没什么改变。我也不认为这是一个浏览器问题(我使用Chrome),因为我也尝试过在Microsoft,并产生了同样的结果。
<body onresize="WindowResize()">
<!--side-menu-->
<nav class="navbar">
<span class="open-Slide">
<a href="#" onclick="openSlideMenu()">
<span id="hamburger" class="icon-menu"></span> /*an Icon font I have downloaded*/
</a>
</span>
<div id="side-menu">
<a href="#" class="btn-close" onclick="closeSlideMenu()">×</a>
<a href="#">Home</a>
<a href="#">Portfolio</a>
<a href="#">Blog</a>
</div>
</nav>
<!--end of side-menu--> //side-menu script
var sideMenuWidth;
var sideMenuIsActive = true;
window.onload = function() {
if (window.innerWidth > 1143) {
sideMenuWidth = '15%';
}else{
sideMenuWidth = '100%';
}
}
function openSlideMenu () {
document.getElementById('side-menu').style.width = sideMenuWidth;
sideMenuIsActive = true;
}
function windowResize() {
if (window.innerWidth > 1143) {
sideMenuWidth = '15%';
if (sideMenuIsActive == true) {
document.getElementById('side-menu').style.width = sideMenuWidth;
}
}else{
sideMenuWidth = '100%';
if (sideMenuIsActive == true) {
document.getElementById('side-menu').style.width = sideMenuWidth;
}
}
}
function closeSlideMenu() {
document.getElementById('side-menu').style.width = '0';
sideMenuIsActive = false;
}
//end of side-menu script#side-menu {
width:15%;
z-index: 1;
transition: 0.5s;
top:0;
left:0;
background-color: black;
height: 100%;
position: fixed;
}
#hamburger {
display: absolute;
top: 0;
left:0;
margin: 1rem 0 0 1rem;
position: fixed;
color: black;
}任何帮助都是非常感谢的!
发布于 2019-11-09 19:17:22
如果您需要交互式元素,但不需要href属性,则可以使用<button>元素,并为该元素应用所需的CSS。这是更好的选择,从无障碍关注。
https://stackoverflow.com/questions/58781576
复制相似问题