材质UI抽屉溢出导致主体上的滚动条

时间:2018-06-26 15:22:27

标签: reactjs canvas material-ui

我在应用栏抽屉下面使用了一个剪辑,其中一个以画布为主要内容。我在抽屉中有三张可折叠卡片,当所有卡片都默认设置为打开时,它在主体上显示一个垂直滚动条,在html元素和body元素下方显示空白。如果关闭所有三张卡,则滚动将消失。如果重新打开卡,则不会出现滚动条。仅当页面在打开所有三张卡的情况下加载页面时,才会出现此问题。

我们的短期解决方案是在仅打开两张卡片的情况下加载页面,但我想指出的是,即使打开两张卡片,抽屉内容也将在窗口下方延伸且不会滚动。抽屉的CSS也不应该成为问题。还有其他人遇到此问题吗?

  drawerPaper: {
    position: 'relative',
    width: 400,
    overflowX: 'hidden',
    overflowY: 'hidden',
    '&:hover': {
      overflowY: 'auto',
    },
    '&::-webkit-scrollbar': {
      display: 'none',
    },
  },



   <MuiThemeProvider theme={this.state.useDarkTheme ? darkTheme : lightTheme}>
    <div className={classes.root}>
      <AppBar position="absolute" className={classes.appBar}>
        <Toolbar>
          <div className={classes.flex}>
            <Typography className={classes.headerTextColor} variant="title">
              Title
            </Typography>
            {sealedBy}
          </div>
          <HeaderTools />
          <Tooltip id="toggle-icon" title="Toggle light/dark theme">
            <IconButton className={classes.headerTextColor} onClick={this.toggleTheme}>
              <BrightnessMediumIcon />
            </IconButton>
          </Tooltip>
        </Toolbar>
        {spinner}
      </AppBar>
      <Drawer
        variant="permanent"
        classes={{
          paper: classes.drawerPaper,
        }}
      >
        <div className={classes.fixedWidth}>
          <div className={classes.toolbar} />
          <DocumentTools />
          <SealingTools />
          <AnnotationTools />
        </div>
      </Drawer>
      <main className={classes.content}>
        <div className={classes.toolbar} />
        <DrawingCanvas />
      </main>
    </div>
  </MuiThemeProvider>

1 个答案:

答案 0 :(得分:3)

您需要在某些容器组件上添加height: 100% css属性,并且对于drawerPaper的样式也需要添加。

我已经在这里进行设置,可以正常工作,但可能取决于容器组件:

drawerPaper: {
    width: 250,
    overflow: "auto",
    height: "100%",
    [theme.breakpoints.up("md")]: {
      overflow: "auto",
      width: drawerWidth,
      position: "relative",
      height: "100%"
    }
  }