【发布时间】:2021-08-23 16:16:54
【问题描述】:
function drawAll() {
// Upper zone, 8 grey transparent buttons
let canvas0 = document.getElementById("layer0");
canvas0.width = 1000;
canvas0.height = 100;
let bandeau = canvas0.getContext("2d");
bandeau.fillStyle = "rgba(128,128,80,0.3)";
for (var i = 0; i < 8; i++) {
bandeau.beginPath;
bandeau.arc(50 + 110 * i, 50, 45, 0, 2 * Math.PI);
bandeau.fill();
}
// Lower zone, a red rectangle partially under the buttons
let canvas1 = document.getElementById("layer1");
canvas1.width = 1000;
canvas1.height = 1000;
let dessin = canvas1.getContext("2d");
dessin.fillStyle = "red";
dessin.fillRect(30, 50, 800, 200);
canvas0.style.visibility = "visible";
canvas1.style.visibility = "visible";
}
drawAll()
body {
background-color: rgb(249, 249, 250);
}
.container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
z-index: -10;
}
.scrollable {
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
}
.fixed {
position: absolute;
top: 0px;
left: 0px;
z-index: 2;
}
<div class="container">
<canvas id="layer0" class="scrollable"></canvas>
<canvas id="layer1" class="fixed"></canvas>
</div>
你好
我被两个画布的叠加问题困住了。这是一个简化的例子。请注意,在实际应用中,按钮和绘图要复杂得多,我想保持结构与 html5 / css / javascript。
我想我错过了 css 中的某些内容,以便成功地将这两个画布叠加,按钮部分覆盖红色矩形,但是什么?
如果有人可以提供帮助,谢谢。
【问题讨论】:
-
嗨,你能检查一下你的 sn-p 并确保它运行正常并显示一些东西吗?谢谢。
-
不幸的是,运行此代码时我在屏幕上看不到任何内容。图纸非常简单,应该显示在屏幕上。我的问题是“他们为什么不出现”
-
我不熟悉“snipet”。尽管“绘图功能未知”包含在 javascript 部分中,但我收到一个错误。在 js/css/html 的三个框中复制/粘贴我的代码时,我可能错过了一些东西!确保如果我正确组装这三段代码,无论是在单个文件中还是拆分为三个文件,我都会遇到相同的画布问题。
-
我编辑并修复了 sn-p。您不需要整个 HTML 设置,最好从 JS 块调用您的 JS 函数。
-
我没有看到 sn-p 的任何模组。是不是因为我试图同时编辑它:我猜测(可能是错误的)“draw”函数名称可以保留并将其更改为“drawAll”。是否有页面可以学习如何使用这个“sn-p”工具?
标签: javascript html css canvas