html - 如何使 div/video 始终为浏览器窗口的大小,并固定在特定位置

标签 html css video size

我想知道如何使视频或 div 固定在某个位置,同时它始终是浏览器窗口的大小。 Here's我想要的是。

他们的“背景”包含一个视频,如果您拖动浏览器窗口的大小,您会注意到它总是会调整视频的大小。这就是我想要做的。

这是我的代码:

#menuContainer{
width:650px;
height:50px;
position:relative;

z-index:3;

margin-top:0;
margin-right:auto;
margin-bottom:0;
margin-left:auto;

background-color:rgb(183, 52, 178);
}


#menuLogo2{
height:50px;
width:126px;
}


#menuDevide1{


width:1px;
height:45px;

background-color:black;

position:relative;
top:-47.5px;
left:131px;

margin-top:auto;
margin-right:0;
margin-bottom:auto;
margin-left:0;
}


#menuDevide2{
width:1px;
height:45px;

background-color:black;

position:relative;
top:-119.5px;
left:260px;

margin-top:auto;
margin-right:0;
margin-bottom:auto;
margin-left:0;
}


#menuDevide3{
width:1px;
height:45px;

background-color:black;

position:relative;
top:-191.5px;
left:391px;

margin-top:auto;
margin-right:0;
margin-bottom:auto;
margin-left:0;
}


#menuDevide4{
width:1px;
height:45px;

background-color:black;

position:relative;
top:-263.5px;
left:520px;

margin-top:auto;
margin-right:0;
margin-bottom:auto;
margin-left:0;
}


#menuBottomline{
width:100%;
height:1px;

background-color:black;

position:absolute;
top:70px;
left:0px

}

#headerBG{
position:absolute;
top:0px;
left:0px;

z-index:2;

background-color:#ffffff;
height:70px;
width:100%;
}


.menuClick{
color:#000000;

text-decoration:none;

font-family: "Open Sans", Arial, sans-serif;
font-size:20px;;
}


.menuClick:hover{
color:#999999;
}


#menuPortfolio1{
position:relative;
top:-83px;
left:133px;

width:126;

text-align:center;
}


#menuServices1{
position:relative;
top:-155px;
left:263px;

width:126;

text-align:center;
}


#menuProcess1{
position:relative;
top:-227px;
left:393px;

width:126;

text-align:center;
}


#menuContact1{
position:relative;
top:-299px;
left:522px;

width:126;

text-align:center;
}


#mainOverlapWrap{
z-index:1;
position:relative;
width:100%;
height:100%;
}


#video1{   
position:absolute;
top:71px;
left:0px;

min-width:1%;
width:100%;
height:100%;
}


#mainOverlay{
position:absolute;
top:0px;
left: 0px;

heightx:100%;
height:100%;

background-color: rgba(0,0,0,0.3);
}

或者,您可以查看此 JSfiddle .

请注意,我将他们的视频用作占位符。我的目的不是窃取他们的工作。

主要问题解决后的问题

当我调整浏览器大小时,我会在右侧看到这个很小的灰色边缘。当我向左调整大小时它往往会出现,但在向右调整大小时会消失。 This图片显示了我的意思。 JSfiddle可以在这里找到。我希望你能解决这个问题!

也许最好将 JSfiddle 中的代码复制到您计算机上的文件中。整个事情在 JSfiddle 中看起来有点奇怪,但在浏览器中则不然。

最佳答案

HTML

<div class="wrapper">
    <div class="h_iframe">
        <iframe src="//www.youtube.com/embed/9KunP3sZyI0" frameborder="0" allowfullscreen></iframe>
    </div>
</div>

CSS

html,body        {height:100%;  margin:0;}
.h_iframe iframe {position:absolute;top:0;left:0;width:100%; height:100%;}

DEMO

DEMO 2

所以我们开始标记

HTML

<div class="wrapper">
  <video class="videoInsert">
  <source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
 </video>
</div>

CSS

.videoInsert {
    position: absolute; 
    right: 0; 
    bottom: 0;
    min-width: 100%; 
    min-height: 100%;
    width: auto; 
    height: auto; 
    z-index: -100;
    background-size: cover;
    overflow: hidden;
}

Final DEMO

所以现在我们需要 jquery。

HTML

<div id="video-viewport">
    <video autoplay preload width="640" height="360">
        <source src="https://s3.amazonaws.com/whiteboard.is/videos/bg-loop-new.mp4" />
    </video>
</div>

CSS

#video-viewport {
    position: absolute;
    top: 0;
    left:0;
    overflow: hidden;
    z-index: -1; /* for accessing the video by click */
}
body{
    margin:0;
}

js

var min_w = 300; // minimum video width allowed
var vid_w_orig;  // original video dimensions
var vid_h_orig;

jQuery(function() { // runs after DOM has loaded

    vid_w_orig = parseInt(jQuery('video').attr('width'));
    vid_h_orig = parseInt(jQuery('video').attr('height'));
    $('#debug').append("<p>DOM loaded</p>");

    jQuery(window).resize(function () { resizeToCover(); });
    jQuery(window).trigger('resize');
});

function resizeToCover() {

    // set the video viewport to the window size
    jQuery('#video-viewport').width(jQuery(window).width());
    jQuery('#video-viewport').height(jQuery(window).height());

    // use largest scale factor of horizontal/vertical
    var scale_h = jQuery(window).width() / vid_w_orig;
    var scale_v = jQuery(window).height() / vid_h_orig;
    var scale = scale_h > scale_v ? scale_h : scale_v;

    // don't allow scaled width < minimum video width
    if (scale * vid_w_orig < min_w) {scale = min_w / vid_w_orig;};

    // now scale the video
    jQuery('video').width(scale * vid_w_orig);
    jQuery('video').height(scale * vid_h_orig);
    // and center it by scrolling the video viewport
    jQuery('#video-viewport').scrollLeft((jQuery('video').width() - jQuery(window).width()) / 2);
    jQuery('#video-viewport').scrollTop((jQuery('video').height() - jQuery(window).height()) / 2);
};

DEMO HERE

关于html - 如何使 div/video 始终为浏览器窗口的大小,并固定在特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23103306/

相关文章:

javascript - 以移动为中心的 Bootstrap 导航栏品牌

javascript - 在 SLIDER 中将图像设置为背景图像的问题

audio - 在 QT 7 pro 中更改 Soundtrack 属性 - 使用 applescript 批处理

javascript - 为 HTML5 视频 window.onscroll 设置 currentTime 滞后

html - 当我进入页面时无法将焦点设置到我的 <ion-input>

html - 防止在 `<a>` 标签前后换行

jquery - 如何在添加到 dom 之前获取 css 属性?

html - 填充 float 的左侧 : right element in a full width design

html - 从自己的域设置背景图像没有显示 - 外部域有效

android - 在 Android 上使用 FFMpeg 进行视频裁剪非常慢