[英]Hover events on element covered by higher z-index?
I have a canvas element ( canvas-mouse
) that spans the whole screen - its purpose is to draw a 50% opacity circle around the mouse of a certain size ( grabsize
). 我有一个横跨整个屏幕的画布元素(
canvas-mouse
) - 其目的是在特定大小的鼠标周围绘制50%的不透明度圆圈( grabsize
)。 Also on the page will be a number of images in divs. 页面上还会有一些div中的图像。 I want these images to be clickable/hoverable, but I also want the 50% opacity circle in
canvas-mouse
to appear on top of them. 我希望这些图像可以点击/可以浏览,但我也希望
canvas-mouse
的50%不透明度圆圈显示在它们之上。
Is there any way to accomplish this? 有没有办法实现这个目标?
HTML: HTML:
<canvas id="canvas-mouse" class="fullscreen"></canvas>
<div class="object die"><img src="images/Die_d6.svg"></div>
CSS: CSS:
html, body {
width: 100%;
height: 100%;
margin: 2px;
overflow: hidden;
color: #FFFFFF;
background-color: #2C744C;
}
canvas.fullscreen {
position: absolute;
left: 0px;
top: 0px;
z-index: -1;
}
.object {
position: absolute;
}
#canvas-mouse {
z-index: 10;
}
JavaScript: JavaScript的:
CanvasRenderingContext2D.prototype.drawCircle = function(xpos, ypos, radius, linewidth, linecolor, fill) {
if(typeof(linewidth)==="undefined") {
linewidth = 1;
}
if(typeof(linecolor)==="undefined") {
linecolor = "#000000";
}
this.beginPath();
this.arc(xpos, ypos, radius, 0, 2*Math.PI, false);
this.lineWidth = linewidth;
if(typeof(fill)!=="undefined") {
this.fillStyle = fill
this.fill();
}
this.strokeStyle = linecolor;
this.stroke();
}
CanvasRenderingContext2D.prototype.maximize = function() {
this.canvas.width = window.innerWidth;
this.canvas.height = window.innerHeight;
}
mousectx = $("#canvas-mouse")[0].getContext("2d");
mousectx.maximize();
//Dice handlers
$(".object.die").hover(function() {
//Hover event goes here
})
$(".object.die").mousedown(function() {
//Click event goes here
})
//Mouse movement handler
$(document).mousemove(function(e){
//Get the mouse positions and put them in {mouse}
mouse.x = e.pageX;z
mouse.y = e.pageY;
//Redraw the grab circle
mousectx.clearCanvas();
mousectx.drawCircle(mouse.x,mouse.y,grabsize,1,"#000000","rgba(0,0,255,0.5)");
});
Thanks in advance. 提前致谢。
Try using pointer-events: none
. 尝试使用
pointer-events: none
。 This rule tells the browser to ignore an element. 此规则告诉浏览器忽略元素。 Mouse events won't be received by it, but will 'pass through' .
鼠标事件不会被它接收,但会“通过” 。
#canvas-mouse {
z-index: 10;
pointer-events: none;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.