悬停时更改项目定位
change item positioning when something's hovered
所以,我的页面左侧有一个垂直导航栏,当它悬停时,我把它从小变大了。基本上,从只显示图标到还显示几个词,标准的东西。但是,它的工作方式,当它扩展时,它会在网站的其余部分中增长。有没有办法让它也调整网站其余部分的大小(仅在悬停时),这样它就不会隐藏任何内容?
布局如下所示:
<body>
<navbar></navbar>
<div id="content">
<main>
<div></div>
<img />
<div></div>
</main>
<footer></footer>
</div>
</body>
当导航栏聚焦时,我希望 div#content 缩小 11rem(这样展开的导航栏就不会在 div#content 之上)。
导航栏未聚焦时为 5rem,聚焦时为 16rem。
为此您可能需要 JavaScript。
请尝试以下操作:
let nav = document.getElementById("nav");
let content = document.getElementById("content");
let contentWidth = content.getBoundingClientRect().width;
nav.addEventListener("mouseover", mOver, false);
nav.addEventListener("mouseout", mOut, false);
function mOver() {
content.style.width = `calc(${contentWidth}px - 11rem)`;
}
function mOut() {
content.style.width = contentWidth + 'px';
}
#nav{
cursor:pointer;
background-color:#f0f0f0;
}
.content{
/* Just a sample width for demonstration */
width:20rem;
background-color:red;
}
<body>
<navbar id="nav">NavBar: Hover Here</navbar>
<div id="content" class="content">
<main>
<div></div>
<img />
<div></div>
</main>
<footer></footer>
</div>
</body>
所以,我的页面左侧有一个垂直导航栏,当它悬停时,我把它从小变大了。基本上,从只显示图标到还显示几个词,标准的东西。但是,它的工作方式,当它扩展时,它会在网站的其余部分中增长。有没有办法让它也调整网站其余部分的大小(仅在悬停时),这样它就不会隐藏任何内容? 布局如下所示:
<body>
<navbar></navbar>
<div id="content">
<main>
<div></div>
<img />
<div></div>
</main>
<footer></footer>
</div>
</body>
当导航栏聚焦时,我希望 div#content 缩小 11rem(这样展开的导航栏就不会在 div#content 之上)。
导航栏未聚焦时为 5rem,聚焦时为 16rem。
为此您可能需要 JavaScript。 请尝试以下操作:
let nav = document.getElementById("nav");
let content = document.getElementById("content");
let contentWidth = content.getBoundingClientRect().width;
nav.addEventListener("mouseover", mOver, false);
nav.addEventListener("mouseout", mOut, false);
function mOver() {
content.style.width = `calc(${contentWidth}px - 11rem)`;
}
function mOut() {
content.style.width = contentWidth + 'px';
}
#nav{
cursor:pointer;
background-color:#f0f0f0;
}
.content{
/* Just a sample width for demonstration */
width:20rem;
background-color:red;
}
<body>
<navbar id="nav">NavBar: Hover Here</navbar>
<div id="content" class="content">
<main>
<div></div>
<img />
<div></div>
</main>
<footer></footer>
</div>
</body>