gpt4 book ai didi

javascript - 如何使用 React 根据屏幕尺寸更改布局

转载 作者:行者123 更新时间:2023-12-03 03:03:27 24 4
gpt4 key购买 nike

我希望能够在达到给定屏幕尺寸时更改布局,这样我就可以更改网站在移动 View 上的外观。

目前我的 react 站点使用包 Horitzontal Scroll Package 水平滚动

我尝试使用react-responsive包来实现这一点,它允许我运行媒体查询,但两个包之间似乎存在冲突。

所以我希望我的网站在全屏(桌面和表格)时水平滚动,然后在移动 View 中从上滚动到下。我该怎么做?

class Home extends React.Component{
constructor(props) {
super(props);
this.state = {};
}

componentWillMount() {
this.setState({
home: projectsData.filter( p => p.name === "homepage" ),
galleryImages: [
ImgOne,
ImgTwo,
ImgThree,
ImgFour,
ImgFive,
ImgSix
]
});
}

render(){

const test = { color: "black", position: "fixed" }
return(
<div className="row">
<Responsive minWidth={992}>
<HorizontalScroll reverseScroll={true}>
<Header />
<SplashScreen />
<CopyText />
</HorizontalScroll>
</Responsive>
</div>
);
}
}

注意:我知道水平滚动包不支持使用百分比调整大小。

最佳答案

You can use Material UI <Hidden> component.在 Material Ui 版本 5 中已弃用。 sx prop 替换了它

import React from 'react';
import PropTypes from 'prop-types';
import compose from 'recompose/compose';
import { withStyles } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
import Hidden from '@material-ui/core/Hidden';
import withWidth from '@material-ui/core/withWidth';
import Typography from '@material-ui/core/Typography';

const styles = theme => ({
root: {
flexGrow: 1,
},
container: {
display: 'flex',
},
paper: {
padding: theme.spacing.unit * 2,
textAlign: 'center',
color: theme.palette.text.secondary,
flex: '1 0 auto',
margin: theme.spacing.unit,
},
});

function BreakpointUp(props) {
const { classes } = props;

return (
<div className={classes.root}>
<Typography variant="subtitle1">Current width: {props.width}</Typography>
<div className={classes.container}>
<Hidden xsUp>
<Paper className={classes.paper}>xsUp</Paper>
</Hidden>
<Hidden smUp>
<Paper className={classes.paper}>smUp</Paper>
</Hidden>
<Hidden mdUp>
<Paper className={classes.paper}>mdUp</Paper>
</Hidden>
<Hidden lgUp>
<Paper className={classes.paper}>lgUp</Paper>
</Hidden>
<Hidden xlUp>
<Paper className={classes.paper}>xlUp</Paper>
</Hidden>
</div>
</div>
);
}

BreakpointUp.propTypes = {
classes: PropTypes.object.isRequired,
width: PropTypes.string.isRequired,
};

export default compose(
withStyles(styles),
withWidth(),
)(BreakpointUp);

关于javascript - 如何使用 React 根据屏幕尺寸更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47272491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com