反应组件打开和折叠动画与动态内容
React Component Open and Collapse Animation with dynamic content
我有一个组件,它在列表中动态地向用户显示值,我希望能够根据状态为列表的打开和关闭设置动画。我选择 React Transition Group,因为它是 React 的一个非常低层的动画库。但是由于我的组件的动态特性,我无法为 body 打开和关闭设置动画。
这是我能够尝试的stackblitz
好的,这是我的第一个 TransitionGroup 示例。它似乎工作。
在 viewMore.js 中将 return 更改为:
return (
<>
{header}
<TransitionGroup component="ul">
{listView.slice(0, maxItems).map((data, index) => (
<CSSTransition
timeout={500}
classNames="fade"
key={data}
>
<li>{data}</li>
</CSSTransition>
))}
{constructShowMoreFooter()}
</TransitionGroup>
</>
)
并将此添加到 style.css:
.fade-enter {
max-height: 0;
opacity: 0;
}
.fade-enter-active {
max-height: 30px;
opacity: 1;
transition: all 500ms;
}
.fade-exit {
max-height: 30px;
opacity: 1;
}
.fade-exit-active {
max-height: 0;
opacity: 0;
transition: all 500ms;
}
这是例子:
https://stackblitz.com/edit/react-nczgpx?file=index.js
我有一个组件,它在列表中动态地向用户显示值,我希望能够根据状态为列表的打开和关闭设置动画。我选择 React Transition Group,因为它是 React 的一个非常低层的动画库。但是由于我的组件的动态特性,我无法为 body 打开和关闭设置动画。
这是我能够尝试的stackblitz
好的,这是我的第一个 TransitionGroup 示例。它似乎工作。 在 viewMore.js 中将 return 更改为:
return (
<>
{header}
<TransitionGroup component="ul">
{listView.slice(0, maxItems).map((data, index) => (
<CSSTransition
timeout={500}
classNames="fade"
key={data}
>
<li>{data}</li>
</CSSTransition>
))}
{constructShowMoreFooter()}
</TransitionGroup>
</>
)
并将此添加到 style.css:
.fade-enter {
max-height: 0;
opacity: 0;
}
.fade-enter-active {
max-height: 30px;
opacity: 1;
transition: all 500ms;
}
.fade-exit {
max-height: 30px;
opacity: 1;
}
.fade-exit-active {
max-height: 0;
opacity: 0;
transition: all 500ms;
}
这是例子: https://stackblitz.com/edit/react-nczgpx?file=index.js