Mow*_*zer 3 scroll reactjs material-design material-ui
如何<AppBar/>在滚动时自动隐藏我的 Reactjs 组件,如图 1 所示?
<AppBar/>滚动时自动隐藏
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);
Run Code Online (Sandbox Code Playgroud)
这里的要点是,当您向下滚动并且窗口垂直滚动条位置达到某个阈值(默认情况下距原点的像素)时,useScrollTrigger将(默认情况下)返回- 当您向上滚动时,它将返回。因此,这些就是我们否定它的理由true100falseinSlide
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>
...
</>
);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用我在本答案顶部提供的有关useScrollTrigger自定义选项的链接,例如threshold
参考: https: //material-ui.com/components/app-bar/#hide-app-bar
| 归档时间: |
|
| 查看次数: |
4276 次 |
| 最近记录: |