【问题标题】:How to autohide AppBar when scrolling using Reactjs Material-UI使用 Reactjs Material-UI 滚动时如何自动隐藏 AppBar
【发布时间】:2019-01-27 10:04:17
【问题描述】:

如何在滚动时自动隐藏我的 Reactjs <AppBar/> 组件,如图 1 所示?

图。1。 <AppBar/> 滚动时自动隐藏

I am using Material-UI and my code is as follows.

MyAppBar.js
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import MenuIcon from '@material-ui/icons/Menu';

const styles = {
  root: {
    flexGrow: 1,
  },
  grow: {
    flexGrow: 1,
  },
  menuButton: {
    marginLeft: -12,
    marginRight: 20,
  },
};

function ButtonAppBar(props) {
  const { classes } = props;
  return (
    <div className={classes.root}>
      <AppBar position="static">
        <Toolbar>
          <IconButton className={classes.menuButton} color="inherit" aria-label="Menu">
            <MenuIcon />
          </IconButton>
          <Typography variant="h6" color="inherit" className={classes.grow}>
            News
          </Typography>
          <Button color="inherit">Login</Button>
        </Toolbar>
      </AppBar>
    </div>
  );
}

ButtonAppBar.propTypes = {
  classes: PropTypes.object.isRequired,
};

export default withStyles(styles)(ButtonAppBar);

【问题讨论】:

标签: reactjs scroll material-design material-ui


【解决方案1】:

您可以将SlideuseScrollTrigger 结合使用

这里的要点是,useScrollTrigger 将(默认情况下)在您向下滚动并且窗口垂直滚动条位置达到某个阈值(默认情况下距原点的100 像素)时返回 true - 当您向上滚动时它返回false。因此,这就是我们在Slidein 属性上否定它的原因

export default function HideAppBar() {
  const trigger = useScrollTrigger();

  return (
    <>        
      <Slide appear={false} direction="down" in={!trigger}>
        <AppBar>
          <Toolbar>
            <Typography variant="h6">Scroll Down to Hide App Bar</Typography>
          </Toolbar>
        </AppBar>
      </Slide>    
      ...
    </>
  );
}

您可以使用我在此答案顶部提供的与useScrollTrigger 相关的链接来自定义选项,例如threshold

参考:https://material-ui.com/components/app-bar/#hide-app-bar

【讨论】:

    猜你喜欢
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多