0
我在文檔中有HTML5 canvas
。在這個畫布上,一些div
可能隱藏在它們後面的畫布上(但畫布的一部分仍然可見)。在div中跳過繪圖畫布
瞭解畫布的位置我該如何檢查哪些div實際上遮蓋了畫布,以便我不再在這些div後面繪製以提高穿透力?
而我怎樣才能真正畫出一部分畫布來節省一些處理能力呢?
我在文檔中有HTML5 canvas
。在這個畫布上,一些div
可能隱藏在它們後面的畫布上(但畫布的一部分仍然可見)。在div中跳過繪圖畫布
瞭解畫布的位置我該如何檢查哪些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);
爲了防止分層DIV下面畫畫,我會用這些左/右/上/下偏移繪圖畫布上。
我不知道哪些div可能在頂部,我想我必須檢查所有div(沒有父母)。怎麼樣的瀏覽器支持boundingClientRect?而且我實際上知道畫布的哪些區域是隱藏的,因此可能只隱藏一個角落,而不是整個畫布。 – Cristy 2013-02-15 20:52:16
你可以檢查每個div,但如果它只是角落,你不覺得檢查會創建更多的開銷,只是繪圖?更不用說你的繪圖路徑將不得不重新補償。不知道你的項目的細節,我會說只是覆蓋的東西=] – 2013-02-15 21:00:29
應與所有瀏覽器兼容,而不是每種方法的100% – 2013-02-15 21:02:15