如何保持视频覆盖整个div

时间:2018-06-08 16:40:06

标签: jquery html css html5-video

我在我的网站上使用了coverr背景视频但是当我将其重新调整为移动设备然后再次访问桌面视图时,视频会有额外的空间。我认为这也发生在Coverr.co网站上。不确定他们是否有支持。

如何保持视频覆盖整个div?这可以通过css媒体查询修复还是需要修改coverr的javascript代码?

我尝试了对象适合的封面,但我认为IE Edge没有解决方法。

谢谢! enter image description here

这是jquery代码

$( document ).ready(function() {

  scaleVideoContainer();

  initBannerVideoSize('.video-container .poster img');
  initBannerVideoSize('.video-container .filter');
  initBannerVideoSize('.video-container video');

  $(window).on('resize', function() {
    scaleVideoContainer();
    scaleBannerVideoSize('.video-container .poster img');
    scaleBannerVideoSize('.video-container .filter');
    scaleBannerVideoSize('.video-container video');
  });
});

function scaleVideoContainer() {

  var height = $(window).height() + 5;
  var unitHeight = parseInt(height) + 'px';
  $('.homepage-hero-module').css('height',unitHeight);

}

function initBannerVideoSize(element){

  $(element).each(function(){
    $(this).data('height', $(this).height());
    $(this).data('width', $(this).width());
  });

  scaleBannerVideoSize(element);

}

function scaleBannerVideoSize(element){

  var windowWidth = $(window).width(),
  windowHeight = $(window).height() + 5,
  videoWidth,
  videoHeight;

  // console.log(windowHeight);

  $(element).each(function(){
    var videoAspectRatio = 
    $(this).data('height')/$(this).data('width');

    $(this).width(windowWidth);

    if(windowWidth < 1000){
        videoHeight = windowHeight;
        videoWidth = videoHeight / videoAspectRatio;
        $(this).css({'margin-top' : 0, 'margin-left' : -(videoWidth - windowWidth) / 2 + 'px'});

        $(this).width(videoWidth).height(videoHeight);
    }

    $('.homepage-hero-module .video-container video').addClass('fadeIn animated');

  });
}

2 个答案:

答案 0 :(得分:0)

您可以使用此代码:

    <div style="width: 100%; height: 100%; position: absolute; top: 0; left: 0; ">

    <video width="100% " controls>
        <source src="https://www.w3schools.com/html/mov_bbb.mp4 " type="video/mp4 ">
        <source src="https://www.w3schools.com/html/mov_bbb.ogg " type="video/ogg "> Your browser does not support HTML5 video.
    </video>
</div>

答案 1 :(得分:0)

我有同样的问题。问题在于这段代码:

if(windowWidth < 1000){
    videoHeight = windowHeight;
    videoWidth = videoHeight / videoAspectRatio;
    $(this).css({'margin-top' : 0, 'margin-left' : -(videoWidth - windowWidth) / 2 + 'px'});
    $(this).width(videoWidth).height(videoHeight);
}

因此,当您将其调整为移动大小,然后再调整为它时,它仍然具有上述CSS。我所做的修复工作是添加一个“ else”,以供您调整大小时使用:

if(windowWidth < 1000){
    videoHeight = windowHeight;
    videoWidth = videoHeight / videoAspectRatio;
    $(this).css({'margin-top' : 0, 'margin-left' : -(videoWidth - windowWidth) / 2 + 'px'}                
    $(this).width(videoWidth).height(videoHeight)
}
else{
    // this resets the CSS applied above
    $(this).css({'margin-top' : '', 'margin-left' : ''});
    $(this).width(windowWidth).height("");
}

希望这会有所帮助!