要实现点击按钮时有过度效果展示一个 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。mountOnEnterunmountOnExit 属性表示在进入和退出时是否挂载和卸载 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

reactjs 如何点击按钮时css transition展示一个 dropdown 以下代码并不会产生过度效果dropdown-content transition all 05s ease; import React useState from react; function Dropdown const isOpen setIsOpen = useStatefals

原文地址: https://www.cveoy.top/t/topic/iF4E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录