发布
社区首页 >问答首页 >HTML画布在画布下方而不是画布内部显示图像

HTML画布在画布下方而不是画布内部显示图像
EN

Stack Overflow用户
提问于 2019-01-02 18:37:50
回答 4查看 234关注 0票数 3

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

代码语言:javascript
代码运行次数:0
复制
<!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>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-01-02 18:46:33

你可以移除你的img标签,并为你的画布设置背景

代码语言:javascript
代码运行次数:0
复制
<canvas id="canvas"
        style =
                "width: 700px;
                  background: url(https://placekitten.com/1000/1000) no-repeat top center;
                  background-size:cover;
                 height: 500px;
                 border: 1px solid #000000;
                 padding-left: 0;
                 padding-right: 0;
                 margin-top: 40px;
                 margin-left: auto;
                 margin-right: auto;
                 display: block;">
</canvas>

票数 2
EN

Stack Overflow用户

发布于 2019-01-02 18:43:09

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

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

代码语言:javascript
代码运行次数:0
复制
window.onload = function() {
    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    var img = document.getElementById("sky");
    ctx.drawImage(img, 10, 10);
}

至于为什么它显示在画布下面,您有一个img元素,其中包含该图像,放置在画布之后。

票数 3
EN

Stack Overflow用户

发布于 2019-01-02 18:41:59

将其添加到脚本中-在加载图像后将其绘制到画布上。

代码语言:javascript
代码运行次数:0
复制
var background = new Image();
background.src = "www.xyz.com/background.png";

// Make sure the image is loaded first otherwise nothing will draw.
background.onload = function(){
    ctx.drawImage(background,0,0);   
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54004810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档