Jquery 跳过在div后面绘制画布

Jquery 跳过在div后面绘制画布,jquery,html,processing.js,Jquery,Html,Processing.js,我在一个文档中有一个HTML5画布。在画布上可能有一些divs,将画布隐藏在它们后面(但画布的一部分仍然可见) 知道画布的位置,我如何检查哪些div实际上覆盖了画布,这样我就不会为了提高性能而在这些div后面画图了 如何仅绘制画布的一部分以节省一些处理能力?确定是否存在重叠: var divid = document.getElementById ("myDiv"); var canvasid = document.getElementById ("myCanvas"); var div =

我在一个文档中有一个HTML5
画布
。在画布上可能有一些
div
s,将画布隐藏在它们后面(但画布的一部分仍然可见)

知道画布的位置,我如何检查哪些div实际上覆盖了画布,这样我就不会为了提高性能而在这些div后面画图了


如何仅绘制画布的一部分以节省一些处理能力?

确定是否存在重叠:

var divid = document.getElementById ("myDiv");
var canvasid = document.getElementById ("myCanvas");

var div = divid.getBoundingClientRect();
var canvas = canvasid.getBoundingClientRect();

var overlap = !(div.right < canvas.left || 
                div.left > canvas.right || 
                div.bottom < canvas.top || 
                div.top > canvas.bottom);
var divid=document.getElementById(“myDiv”);
var canvasid=document.getElementById(“myCanvas”);
var div=divid.getBoundingClientRect();
var canvas=canvasid.getBoundingClientRect();
var重叠=!(右分区canvas.right | |
div.bottomcanvas.bottom);

为了防止在分层div下绘图,我会在画布上的绘图中使用这些左/右/上/下偏移

我不知道哪个div可能在上面,我想我必须检查所有div(没有父母的)。boundingClientRect的浏览器支持如何?实际上,我想知道画布的哪些区域是隐藏的,所以可能只有一个角是隐藏的,而不是整个画布。你可以检查每个div,但是如果只是角,你不认为检查会产生比画图更多的开销吗?更不用说必须重新处理图形路径以进行补偿。在不了解项目细节的情况下,我想说的是,只需掩盖一切就可以了=]应该与所有浏览器兼容,而不是100%的每种方法画布是以每秒60帧的速度绘制的,重叠只检查一次,因此最好不要绘制用户无论如何都看不到的内容,因为绘制会消耗大量的处理能力。