You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React按钮Div动画与显示异常问题排查及修复请求

问题修复方案

1. 跨组展开失效问题修复

原因

当前代码用单一状态变量控制两组Div的展开/关闭,关闭一组后状态被置为false,点击另一组按钮时,状态切换逻辑虽能将值转为true,但渲染时未做组间状态区分,导致对应Div无法正常展开。

解决代码

改用对象存储两组独立的展开状态:

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

function App() {
  const [groupExpanded, setGroupExpanded] = useState({
    group1: false,
    group2: false
  });

  const toggleGroup = (groupName) => {
    setGroupExpanded(prevState => ({
      ...prevState,
      [groupName]: !prevState[groupName]
    }));
  };

  return (
    <div className="App">
      <button onClick={() => toggleGroup('group1')}>按钮1</button>
      <div className="group">
        <div className={`box ${groupExpanded.group1 ? 'open' : ''}`} style={{ animationDelay: '0ms' }}></div>
        <div className={`box ${groupExpanded.group1 ? 'open' : ''}`} style={{ animationDelay: '100ms' }}></div>
        <div className={`box ${groupExpanded.group1 ? 'open' : ''}`} style={{ animationDelay: '200ms' }}></div>
      </div>

      <button onClick={() => toggleGroup('group2')}>按钮2</button>
      <div className="group">
        <div className={`box ${groupExpanded.group2 ? 'open' : ''}`} style={{ animationDelay: '0ms' }}></div>
        <div className={`box ${groupExpanded.group2 ? 'open' : ''}`} style={{ animationDelay: '100ms' }}></div>
        <div className={`box ${groupExpanded.group2 ? 'open' : ''}`} style={{ animationDelay: '200ms' }}></div>
      </div>
    </div>
  );
}

export default App;

2. 从右至左依次展开动画修复

原因

未设置Div的初始偏移状态,也未给每个Div分配递增的动画延迟,导致无法实现依次展开的递进效果。

解决代码

修改App.css配置动画逻辑:

.App {
  padding: 20px;
}

.group {
  margin: 20px 0;
  display: flex;
  gap: 10px;
}

.box {
  width: 100px;
  height: 100px;
  background: #42b983;
  /* 初始状态:向右偏移100%,完全隐藏 */
  transform: translateX(100%);
  opacity: 0;
  /* 绑定过渡动画属性 */
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.box.open {
  /* 展开状态:回到原位并显示 */
  transform: translateX(0);
  opacity: 1;
}

修改后,每组按钮仅控制自身对应Div的展开/关闭,三个Div会按0ms、100ms、200ms的延迟依次从右侧滑入显示。

内容的提问来源于stack exchange,提问作者Ram01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:37:02