typescript 动态追加类时CSS转换无法正常工作

polhcujo  于 2022-12-24  发布在  TypeScript
关注(0)|答案(1)|浏览(115)

我为自己的主div编写了一个CSS:

.main {
  height: 0%;
  position: absolute;
  width: 100%;
  z-index: 100;
  background: whitesmoke;
  bottom: 0;
  border-radius: 15px;
  padding: 20px;
  color: gray;
  left: 0;
  right: 0;
  transition: height 1s ease-in;
}

.visible {
  height: 96%;
}

当我自己的程序中的一些状态改变时,我会触发。visible CSS类。但是它不起作用。
查看我的React部分:

import React, { useContext } from "react";
import styles from "../../sass/DownModal.module.scss";
import { ConfigContext } from "../../context/config";
import { EnumPageFrom } from "../../bussiness/Icon";

function Index({ children }: { children: React.ReactNode }) {
  const { setActiveMenu, setBackground, activeMenu } =
    useContext(ConfigContext);
  return (
    <div
      className={`${styles.main} ${
        activeMenu == EnumPageFrom.MenuAdd && styles.visible
      }`}
    >
      {children}
    </div>
  );
}

export default Index;

除了CSS(.visible)类之外,所有的东西都工作正常!
为什么和我怎样才能适合它?
编辑

.visible {
  height: 96%;
}
.hidden {
  height: 0%;
}
.main {
  position: absolute;
  width: 100%;
  z-index: 100;
  background: whitesmoke;
  bottom: 0;
  border-radius: 15px;
  padding: 20px;
  color: gray;
  left: 0;
  right: 0;
  transition: height 4s;
}

<div
      className={`${styles.main} ${
        activeMenu == EnumPageFrom.MenuAdd ? styles.visible : styles.hidden
      }`}
    >
      {children}

我把一个片段分成几个部分,但过渡仍然不起作用。

n3h0vuf2

n3h0vuf21#

有几个潜在问题可能会导致.visible类无法按预期应用:
1.确保activeMenu变量设置正确,并且activeMenu的值是您希望应用.visible类时所期望的值。您可以通过添加控制台日志来检查这一点,以便在代码中的不同点打印出activeMenu的值。
1.确保React组件中的样式对象包含.main和.visible类的正确类名。可以通过检查调试器中的样式对象或添加控制台日志以打印出该对象来检查这一点。
1.请确保在CSS中正确定义了.visible类。请确保height属性设置为大于0的值,并确保transition属性设置正确。您可以尝试向.visible类添加其他属性(如颜色或字体大小),并查看是否按预期应用该属性以帮助缩小问题范围。

相关问题