首页 > 解决方案 > 如何动画更改网格项目大小 Material UI

问题描述

我有一个带有 React 和 Material UI 的项目。

我需要一些关于如何为网格项目大小更改设置动画的指导。该项目默认为 sm={3},当用户悬停该项目时,它会更改为 sm={6}。这是通过偶数触发器和状态变量完成的。我的问题是如何为此创建过渡/动画?

我尝试将其添加到项目 css 中,但没有成功。

transition: theme.transitions.create("width", {
    easing: theme.transitions.easing.easeIn,
    duration: theme.transitions.duration.sta
})

标签: javascriptcssreactjsmaterial-uinext.js

解决方案


我知道这个问题已经三个月了,但我遇到了同样的问题,即根据状态中的变量在 React 和 Material UI 中为网格大小变化设置动画。当侧边栏展开和缩回时,我正在为主页内容进行过渡以平滑调整大小。我在 Grid 元素上使用内联样式来做到这一点。

我的代码:

<Grid container>
  <Grid 
    item xs={this.state.expandMainContent === true ? 1 : 2}
    style={{transition: theme.transitions.create("all", {
          easing: theme.transitions.easing.sharp, 
          duration: theme.transitions.duration.leavingScreen,
  })}} >
    <Sidebar />
  </Grid>
  <Grid 
    item xs={this.state.expandMainContent === true ? 11 : 10} 
    style={{transition: theme.transitions.create("all", {
          easing: theme.transitions.easing.sharp, 
          duration: theme.transitions.duration.leavingScreen
   })}}>
     <MainContent />
  </Grid>
</Grid>

我在点击时完成了我的点击,而你的在悬停时,但它应该仍然可以正常工作。


推荐阅读