为什么我的css转换在react 18中不工作[重复]

tktrz96b  于 2023-04-13  发布在  React
关注(0)|答案(1)|浏览(122)

此问题已在此处有答案

Transitions on the CSS display property(38回答)
21小时前关闭
我尝试了很多次添加一个过渡到eventBody,但它仍然不工作。

**这里是代码:

export function Event({ event }: EventProps) {
  const [showDropDown, setShowDropDown] = useState(false)

  return (
    <div className={styles.eventContainer}>
      <div
        className={styles.eventHeader}
        onClick={() => setShowDropDown(!showDropDown)}
        role='button'
      >
        <div className={styles.eventInfo}>
          <div className={styles.eventTitle}>{event.title}</div>
          <div className={styles.eventTime}>{event.time}</div>
          <div className={styles.eventLocation}>{event.location}</div>
        </div>

        <div className={styles.chevronContainer}>
          <Icon
            name={IconName.chevron}
            iconProps={{
              className: `${styles.chevron} ${showDropDown ? styles.openedChevron : ''}`,
              alt: 'Chevron icon',
            }}
          />
        </div>
      </div>
      <div className={styles.eventBody} hidden={!showDropDown}>
        <div className={styles.line}></div>
        <AttendeeList upcoming={true} attenders={attenders}></AttendeeList>
      </div>
    </div>
  )
}

**CSS:

.eventBody {
  transition: all 0.4s ease-out;
}

.eventBody[hidden='true'] {
  display: none;
}

我试着在100毫秒后设置ShowDropDown,每次点击标题div,也试着在过渡中使用高度而不是所有,但没有任何效果

mkh04yzy

mkh04yzy1#

你的css选择器是错误的。而且,display不是animatable property

.eventBody {
  transition: all 0.4s ease-out;
  height: 300px;
  position: relative;
  overflow: hidden;
}

.eventBody[hidden] {
  height: 0;
}

相关问题