Jquery 跳过在div后面绘制画布
我在一个文档中有一个HTML5Jquery 跳过在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 =
画布
。在画布上可能有一些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帧的速度绘制的,重叠只检查一次,因此最好不要绘制用户无论如何都看不到的内容,因为绘制会消耗大量的处理能力。