我在 div 中有一个视频和一个画布,我想将画布覆盖在视频上。我试过这个:
.container {
margin: 0 auto;
position: relative;
}
.video {
width: 100%;
height: auto;
position: absolute;
top: 0;
left: 0;
}
.canvas {
width: 100%;
height: auto;
position: absolute;
top: 0;
left: 0;
z-index: 10;
}
Run Code Online (Sandbox Code Playgroud)
JSFiddle在这里
但是由于某种原因画布没有覆盖整个视频,它更短。我该如何解决?
画布必须具有绝对的宽度和高度。当视频加载时,您可以分配正确的宽度和高度。
这里:jsfiddle:https ://jsfiddle.net/7sk5k4gp/13/
PS:为了更好的理解,我放了一个红色过滤器。
上面的代码:
<style>
.canvas {
position: absolute;
top: 0;
left: 0;
z-index: 10;
background-color:rgba(255,0,0,0.5);
}
</style>
<div class="container">
<video class="video" id="vd1" controls autoPlay src="http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_sma ll.ogv" onplay="resize_canvas(this)"></video>
<canvas class="canvas" id="cv1"></canvas>
</div>
<script>
function resize_canvas(element)
{
var w = element.offsetWidth;
var h = element.offsetHeight;
var cv = document.getElementById("cv1");
cv.width = w;
cv.height =h;
}
</script>
Run Code Online (Sandbox Code Playgroud)
小智 2
将画布的高度调整为 100% 可确保覆盖整个视频。自动标记只是根据需要显示的数据量调整对象的大小。例如,对于带有“width:auto”的 <\p> 标签,文本越多,标签越宽等。 .container { margin: 0 auto; 位置:相对;}
.video {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
}
.canvas {
width: 100%;
height: 100%;
position: fixed;
background-color:black;
top: 0;
left: 0;
z-index: 10;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11370 次 |
| 最近记录: |