html - 悬停时更改项目位置
问题描述
所以,我的页面左侧有一个垂直导航栏,当它悬停时我已经从小到大了。基本上,从只显示图标到还显示几个单词,标准的东西。但是,它的工作方式,当它扩展时,它会在网站的其余部分增长。有没有办法让它也调整网站其余部分的大小(仅在悬停时),这样它就不会隐藏任何内容?布局如下所示:
<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>
推荐阅读
- javascript - 制作javascript动画函数循环,直到页面加载
- c++ - PortAudio 回调不连续?
- c# - 如何调试单声道运行时调用看似随机的getter而不是接口方法
- php - 数组com问题json多维
- json - 预期'[,种类:多态'
- html - 列表项 div 不会达到父项的 100% 宽度
- php - Laravel 中间件执行顺序不正确
- c# - 是否可以使用 MSBuild 将两个项目编译为一个?
- javascript - Firebase - 在 localStorage 对象有效时保持用户登录
- python - 使用 Pyinstaller 运行 exe 构建时出错