【发布时间】:2021-08-21 12:29:12
【问题描述】:
我有一个导航栏,我正在更改单击复选框时的宽度。单击复选框时,我希望导航栏平滑过渡到更大的宽度。它似乎只是第一次在 sn-p 上工作。
这是我的代码:
function change() {
var nav = document.getElementById("navbar");
var checkBox = document.getElementById("checkbox");
if (checkBox.checked == true) {
nav.style.width = "300px";
} else {
nav.style.width = "fit-content";
}
}
nav {
display: flex;
flex-direction: column;
justify-content: space-between;
width: 100px;
height: 100%;
transition: 0.3s;
box-shadow: rgba(136, 165, 191, 0.26) 4px 2px 10px 0px, rgba(255, 255, 255, 0.8) -4px -2px 16px 0px;
}
nav input {
margin: 10px;
position: absolute;
width: 50px;
height: 50px;
opacity: 0;
cursor: pointer;
}
<nav id="navbar">
<input onclick="change()" type="checkbox" name="" id="checkbox">
<p>Home</p>
</nav>
【问题讨论】:
-
transition仅在您增加%或px中导航栏的宽度时才有效。例如;initial-width: 300px和转换后的宽度new-width: 100%或任何x%、xpx。
标签: javascript html css navbar nav