你可以使用React的state来实现这个收缩功能。你需要定义一个state变量来跟踪展开和收缩状态,然后在点击事件中根据状态来切换展开和收缩状态。

同时,你可以使用CSS动画来实现滑动效果。你可以为你的div添加一个CSS类,该类包含一个transition属性,该属性可以设置动画的持续时间和动画的缓动函数。当你在React中更新状态时,React将自动添加或删除该类,从而触发CSS动画。

以下是一个简单的示例代码:

import React, { useState } from 'react';
import './App.css';

function App() {
  const [expanded, setExpanded] = useState(true);

  const toggleExpand = () => {
    setExpanded(!expanded);
  }

  return (
    <div className={`box ${expanded ? 'expanded' : ''}`} onClick={toggleExpand}>
      <h1>收缩功能</h1>
      <p>这是一个可以收缩的div</p>
    </div>
  );
}

export default App;

在CSS文件中,你可以添加以下样式:

.box {
  height: 100px;
  overflow: hidden;
  transition: height 0.5s ease-in-out;
}

.expanded {
  height: 200px;
}

这将使你的div在展开和收缩时具有平滑的滑动效果


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

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