假设我们有一个带有输入字段的按钮,其中输入字段会增长以占用可用空间:
当按钮被点击时,按钮旁边会出现额外的上下文信息。
内容的宽度是动态的 - 我们不能硬编码它。输入会自然地缩小。
您将如何为动态内容的出现添加动画效果,以便它从按钮后面滑出?
我正在寻找一个CSS动画解决方案。 游乐场
您将如何为动态内容的出现添加动画效果,以便它从按钮后面滑出?
我正在寻找一个CSS动画解决方案。 游乐场
.test {
animation-name: test;
animation-duration: 1s;
animation-direction: forwards;
overflow: hidden;
white-space: nowrap;
}
@keyframes test {
0% {
max-width: 0;
}
100% {
max-width: 200px;
}
}
然后你需要将该类添加到你的动态对象中
function App() {
const [isOpen, setIsOpen] = useState(false);
return (
<div className="container">
<button onClick={() => setIsOpen(!isOpen)}>
{isOpen ? "Hide" : "Show"}
</button>
{isOpen && <div class='test'>Dynamic Content</div>}
<input type="text" />
</div>
);
}
max-height
远大于实际内容时,这一点尤为明显。在这种情况下会有明显的延迟。 - Misha Moroshko