我試圖使用此示例: http://html5.litten.com/using-multiple-html5-canvases-as-layers/ 創建多個html5圖層(實際上只需要2個)用於背景,然後是該背景上的動畫。使用未定位的畫布圖層使用位置:絕對
的問題是例子,和許多其他的解決方案,建議使用的z-index等分層畫布似乎都在定位左邊畫布:0和top:0的絕對位置。
例如: html5 - canvas element - Multiple layers html5 - canvas element - Multiple layers
不過,我想做些什麼,是有位置是動態的,但總是那麼的兩個畫布在彼此的頂部分層。
什麼我已經到目前爲止做的是這樣的:
<div id="canvasesdiv" align=center; style="text-align:center; float:center">
<canvas id="bottomlayer-background" style="z-index: 1; border:1px dotted;" align=center>
This text is displayed if your browser does not support HTML5 Canvas.
</canvas>
<canvas id="toplayer-movingstuff" style="z-index: 2; border:1px dotted; position:absolute; left:530px; top:83px">
This text is displayed if your browser does not support HTML5 Canvas.
</canvas>
</div>
這種方法的問題是,我不得不手動找出其中底層的左上角是,然後輸入到這頂層。但是這種情況只適用於一臺瀏覽器,一臺顯示器,全屏等。顯然,這是不可行的。
當我試圖同時擁有僅僅是ALIGN =中心,那麼會發生什麼是油畫出現並排側,而不是分層在彼此的頂部。
當我嘗試爲兩者做絕對位置時,問題在於窗口中的其他東西,最初在畫布下面(即文本,表格等)突然出現在畫布下方。
有沒有其他人能夠解決這個問題?
謝謝!
啊,我沒有設置高度和寬度的原因是因爲我現在正在動態地使用javascript來確定這些動態,因爲我希望能夠調整網格上的行數和列數,這可能會改變大小的畫布。有沒有辦法做到這一點,而不必提前設置寬度和高度? – user1031885
只要你設置畫布元素的寬度和高度屬性,而不是CSS,你應該沒問題。只要記得在運行時改變背景層。看到這個更新到前面的小提琴來看看區別:http://jsfiddle.net/4WDJz/6/ –
(注意:我按比例設置大小,所以奇怪的縮放並不完全明顯,但如果你嘗試一些不成比例,你會看到縮放問題)。 –