代码之家  ›  专栏  ›  技术社区  ›  Wazza

当屏幕高度为100%且窗口大小调整时,如何保持网络摄像头视频居中

  •  1
  • Wazza  · 技术社区  · 7 年前

    使用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'
      }
    }
    

    通过以上,目前,视频只是拥抱窗口的左侧。

    4 回复  |  直到 7 年前
        1
  •  0
  •   Developer Tanbir    7 年前

    如果你的视频 . 那你需要用 左:50%; 希望有帮助?

        2
  •  0
  •   Niraj Kaushal    7 年前

    有很多方法可以解决这个问题,其中之一就是添加

    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'
        }
    }
    
        3
  •  0
  •   Fahad Azhar    7 年前

    尝试使用flexbox

    const style = {
      container: {
        display: 'flex';
        alignItems: 'center';
        justifyContent: 'center';
        height: 'auto';
      }
    }
    
        4
  •  0
  •   Wazza    7 年前

    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'
      }
    }