使用 React,我有一个网络摄像头视频,当视频的高度是屏幕高度的 100% 时,它必须始终居中。我让视频垂直填充屏幕,但如果我更改窗口的宽度,视频不会保持居中。
return (
<div style={style.container}>
<video style={style.video}
ref={this.videoRef}
autoPlay={true}></video>
</div>
)
const style = {
container: {
position: 'absolute',
width: '100%',
height: '100%',
overflow: 'hidden',
},
video: {
transform: 'rotateY(180deg)',
height: '100%',
objectFit: 'contain',
objectPosition: 'center'
}
}
综上所述,目前,视频只是拥抱窗口的左侧。
如果您的视频宽度为 100%。然后你需要使用左:50%; 和左边距:-50%;希望有帮助吗?
有很多
方法可以解决这个问题,其中之一是添加
position: 'relative',
transform: 'rotateY(180deg) translateX(50%)',
left: '50%'
如下
const style = {
container: {
position: 'absolute',
width: '100%',
height: '100%',
overflow: 'hidden',
},
video: {
position: 'relative',
left: '50%',
transform: 'rotateY(180deg) translateX(50%)',
height: '100%',
objectFit: 'contain',
objectPosition: 'center'
}
}
尝试使用 flexbox
const style = {
container: {
display: 'flex';
alignItems: 'center';
justifyContent: 'center';
height: 'auto';
}
}
谢谢大家,它最终引导我最终找到了有效的方法:
const style = {
container: {
position: 'absolute',
width: '100%',
height: '100%',
overflow: 'hidden',
},
video: {
position: 'absolute',
transform: 'rotateY(180deg)',
height: '100%',
width: '100%',
left: '50%',
marginLeft: '-50%',
objectFit: 'cover',
objectPosition: 'center'
}
}