如何提高 Material UI 的整体动画速度

Ali*_*adi 3 reactjs material-ui

我怎样才能提高整体动画速度Material UI,例如里面有一个drawer组件material UI,它可以打开或关闭,我怎样才能提高动画速度?
更好的是我怎样才能提高所有动画速度material UI

m51*_*m51 12

本地覆盖

您可以<Drawer>通过向transitionDuration组件添加道具来更改过渡持续时间。

<Drawer transitionDuration={1000}>  // time for entering and leaving in ms
Run Code Online (Sandbox Code Playgroud)

如果您想要不同的进出时间:

<Drawer transitionDuration={{ enter: 500, exit: 1000 }}>
Run Code Online (Sandbox Code Playgroud)

文档

现场演示:

编辑材料演示

全局覆盖

至于全局覆盖。通过使用<ThemeProvider>组件并将您的自定义主题注入应用程序应该是可能的。然后你可以覆盖很多东西,其中之一是动画持续时间:

import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles";

const theme = createMuiTheme({
  // here are default values in ms
  transitions: {
    duration: {
      shortest: 150,
      shorter: 200,
      short: 250,
      standard: 300,
      complex: 375,
      enteringScreen: 225,
      leavingScreen: 195,
    }
  }
}); 

function App() {
    return (
        <MuiThemeProvider theme={theme}>
            <RestOfYourApp />
        </MuiThemeProvider>
    );
}
Run Code Online (Sandbox Code Playgroud)

它有效......例如对于<Button>组件:

编辑材料演示

尝试将鼠标悬停在上面示例中的按钮上,完成转换需要 1000 毫秒。但不幸的是它不适用于<Drawer>组件。

从 enterScreen 和 leaveScreen 主题属性开始应该需要持续时间,但看起来这些属性是在源代码中硬编码的

因此,更改<Drawer>过渡持续时间的唯一方法是向transitionDuration组件添加道具。

  • 对于其他一些 MUI 组件来说,这也是一个问题,例如 Transition 组件(Slide、Fade 等);它们也不从全局主题中获取过渡持续时间,并且也需要强制设置。 (2认同)