reactjs 如何点击按钮时css transition展示一个 dropdown 以下代码并不会产生过度效果dropdown-content transition all 05s ease; import React useState from react; function Dropdown const isOpen setIsOpen = useStatefals
要实现点击按钮时有过度效果展示一个 dropdown,可以使用 React 的 CSS Transition 组件。首先,需要引入 Transition 组件,并将 dropdown 内容包裹在其中。然后,根据 isOpen 的状态来控制 dropdown 是否显示。
以下是修改后的代码:
import React, { useState } from 'react';
import { Transition } from 'react-transition-group';
function Dropdown() {
const [isOpen, setIsOpen] = useState(false);
return (
<div>
<button onClick={() => setIsOpen(!isOpen)}>Toggle Dropdown</button>
<Transition in={isOpen} timeout={500} mountOnEnter unmountOnExit>
{state => (
<div className={`dropdown-content ${state}`}>
Dropdown Content
</div>
)}
</Transition>
</div>
);
}
export default Dropdown;
在上面的代码中,我们使用了 Transition 组件来实现过渡效果。in 属性表示是否显示 dropdown,根据 isOpen 的状态来控制。timeout 属性表示过渡的持续时间,这里设置为 500ms。mountOnEnter 和 unmountOnExit 属性表示在进入和退出时是否挂载和卸载 dropdown 内容。
在 dropdown-content 的 className 中,我们添加了 ${state} 来根据过渡状态来添加对应的 CSS 类,以实现过渡效果。
最后,记得在 CSS 中添加对应的过渡效果样式:
.dropdown-content {
opacity: 0;
transition: opacity 0.5s ease;
}
.dropdown-content.entering,
.dropdown-content.exiting {
opacity: 0;
}
.dropdown-content.entered {
opacity: 1;
}
在上述 CSS 中,我们通过 opacity 来实现淡入淡出的过渡效果。.dropdown-content.entering 和 .dropdown-content.exiting 分别表示进入和退出时的状态,通过设置 opacity 为 0 来实现元素的隐藏。.dropdown-content.entered 表示过渡结束后的状态,通过设置 opacity 为 1 来实现元素的显示。
通过以上修改,点击按钮时将会有一个过渡效果展示 dropdown
原文地址: https://www.cveoy.top/t/topic/iF4E 著作权归作者所有。请勿转载和采集!