javascript - HTML Canvas 在 Canvas 下方而不是 Canvas 内部显示图像

标签 javascript html canvas background-image

我正在尝试在 HTML5 Canvas 中显示背景图像。我已确保图像和 html 文件位于同一文件夹中,因此图像正在显示。我还尝试调整图像大小以确保图像对于 Canvas 来说不会太大,但是,图像一直显示在 Canvas 下方而不是 Canvas 内部。我的代码如下:

<!DOCTYPE html>
<html lang="en"> 
<head>
    <meta charset="UTF-8">
    <title>Opening screen</title>
</head>
<body>
<img>
<canvas id="canvas"
        style =
                "width: 700px;
                 height: 500px;
                 border: 1px solid #000000;
                 padding-left: 0;
                 padding-right: 0;
                 margin-top: 40px;
                 margin-left: auto;
                 margin-right: auto;
                 display: block;">
</canvas>
<img id="sky"  src="sky.png">
<script>
    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    var img = document.getElementById("sky");
    ctx.drawImage(img, 10, 10);
</script>
</body>
</html>

最佳答案

当您尝试将其插入 Canvas 时,图像尚未加载/下载。

您可以将您的代码添加到 window.onload 函数,它应该可以工作

window.onload = function() {
    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    var img = document.getElementById("sky");
    ctx.drawImage(img, 10, 10);
}

至于为什么它显示在 Canvas 下方,您有一个包含该图像的 img 元素,位于 Canvas 之后。

关于javascript - HTML Canvas 在 Canvas 下方而不是 Canvas 内部显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004810/

相关文章:

javascript - 在新选项卡中打开 Blob Url (IE)

javascript - 如何在点击时加粗标签?

javascript - 隐藏除第一个子级之外的所有子级 div。当我从第一个 div 选择一个单选选项时,显示第二个

javascript - 渐变线性CSS问题(附上plunker

javascript - 在 JavaScript 中调用不带参数的 concat 有什么作用

javascript - 每次操作后刷新表

javascript - 查找相机是否已在 Babylonjs 中将键盘控制附加或分离到 Canvas

javascript - 修复 Carousel FlexBox 上的动画

javascript - window.innerWidth = 0?

wpf - 在 WPF 中仅使用 XAML 将元素定位在 Canvas 内的中心(而不是左上角)