У меня есть элемент video и canvas.Стили выполняются следующим образом:
canvas {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height:100%;
width:100%;
background-color: rgba(0,0,255,0.5);
z-index:10;
}
video {
position: absolute;
top: 0;
left: 0;
}
HTML-код выглядит следующим образом
<video id="local-video" class="ui large image hidden" autoplay></video>
<canvas id="c1" class="ui large"></canvas>
Я пытаюсь нарисовать на холсте поверх элемента видео.Когда я устанавливаю фиксированное положение холста, я могу рисовать на холсте с кодом ниже, но холст не накладывается на видео.Но когда я устанавливаю абсолютное положение, холст накладывается на видео, но я не могу рисовать в видео.Я проверил в своей консоли точки context.moveTo () и context.lineTo (), и они отлично отображаются, но не отображаются на холсте.Пожалуйста помоги.// canvas var canvas = document.getElementById ('c1');var context = canvas.getContext ('2d');var localVideo = document.getElementById ('local-video') localVideo.addEventListener ("loadedmetadata ", function (e) {var width = this.videoWidth, height = this.videoHeight; canvas.height = высота; canvas.width = ширина;}, false);
$('#c1').mousedown(function(e){
var mouseX = e.pageX - this.offsetLeft;
var mouseY = e.pageY - this.offsetTop;
paint = true;
addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop,false);
redraw();
});
$('#c1').mousemove(function(e){
if(paint){
addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);
redraw();
}
});
$('#c1').mouseup(function(e){
paint = false;
});
$('#c1').mouseleave(function(e){
paint = false;
});
var clickX = new Array();
var clickY = new Array();
var clickDrag = new Array();
var paint;
function addClick(x, y, dragging)
{
clickX.push(x);
clickY.push(y);
clickDrag.push(dragging);
}
function redraw(){
context.clearRect(0, 0, context.canvas.width, context.canvas.height); // Clears the canvas
context.strokeStyle = "rgba(0,0,255,0)";
context.lineJoin = "round";
context.lineWidth = 5;
for(var i=0; i < clickX.length; i++) {
context.beginPath();
if(clickDrag[i] && i){
context.moveTo(clickX[i-1], clickY[i-1]);
}else{
context.moveTo(clickX[i]-1, clickY[i]);
}
context.lineTo(clickX[i], clickY[i]);
context.stroke();
context.closePath();
}
}