【发布时间】:2023-04-03 11:06:01
【问题描述】:
现在我在使用 react 制作滑动侧边栏时遇到问题。
我知道有很多 react 库可以很容易地制作一个滑动条,但我现在想要的是一个滑动条,它可以通过一个切换按钮推动主要部分。
简单地说,如果单击按钮,则将内容拆分为主要内容的 75% 和侧边栏的 25%。我也想使用关键帧制作动画。
所以我最初使用 bootstrap 作为下面的代码。
const [isNoteOpen, setIsNoteOpen] = useState(false, []);
const onClickBtn = (e) => {
setIsNoteOpen(!isNoteOpen);
console.log(isNoteOpen);
};
const btnStyle = {
position: "fixed",
top: "7rem",
right: "3rem",
zIndex: "1",
};
return (
<div className="d-flex">
<button
style={btnStyle}
className={`btn float-right round-box ${(isNoteOpen && "btn-primary") || "btn-danger"}`}
onClick={onClickBtn}
>
<
</button>
<div className="d-flex w-100 mx-0 mx-md-5">
<div className={`note-transition pr-3 pl-2 ${isNoteOpen ? "w-75" : "w-100"}`}>
<div className="">
<img className="img-fluid w-100" src="https://picsum.photos/800/500" alt="" />
</div>
</div>
<div className={`pl-3 pr-2 ${isNoteOpen ? "w-25" : "d-none"} `}>
<div className="d-flex flex-column justify-content-center">
<div className="border w-100" style={{ height: "100px" }}>
PLACEHOLDER
</div>
</div>
</div>
</div>
</div>
);
style.css
.note-transition {
transition: .3s all ease-in-out;
}
当我关闭侧边栏时很好,但是当我打开侧边栏时,它突然出现。 然后我想应用关键帧来制作动画,以便我认为它不会突然出现。但是我不知道如何使它工作。
如果有人能告诉我如何实现这一点,我将不胜感激。如果您知道任何其他更优雅或更高效的解决方案,请也告诉我以供我将来参考。
非常感谢您。
【问题讨论】:
标签: reactjs css-animations sidebar keyframe