javascript - HTML5 Canvas 图像在 chrome 中不可见

标签 javascript css html canvas

我正在使用 HTML5 canvas 并将两张图片放在那里,但我面临一个问题,即一张图片已加载并在 chrome 中可见,但另一张图片仅在 mozilla 中可见,但在刷新后。我不知道为什么会这样,因为我是 canvas 的新手。

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var x = 0;
var y = 0;
var width = 900;
var height = 700;
var imageObj = new Image();
imageObj.onload = function() {
  context.drawImage(imageObj, x, y, width, height);
};
imageObj.src = 'http://img13.deviantart.net/1550/i/2011/353/4/2/mobile_game_background_by_disnie-d4jmr8r.jpg';

var startImageObj = new Image();
startImageObj.onload = function() {
  context.drawImage(startImageObj, (canvas.width-startImageObj.width)/2, (canvas.height-startImageObj.height)/2)
};
startImageObj.src = 'http://assets.halfbrick.com/yc/v3/images/button-play.png';
<canvas id="canvas" width="900" height="700"></canvas>

fiddle

最佳答案

作为onload事件是异步的,确保在 base-image

onload-handler 中设置了 play-button

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var x = 0;
var y = 0;
var width = 900;
var height = 700;
var imageObj = new Image();
imageObj.onload = function() {
  context.drawImage(imageObj, x, y, width, height);
  var startImageObj = new Image();
  startImageObj.onload = function() {
    context.drawImage(startImageObj, (canvas.width - startImageObj.width) / 2, (canvas.height - startImageObj.height) / 2)
  };
  startImageObj.src = 'https://d30y9cdsu7xlg0.cloudfront.net/png/5670-200.png';
};
imageObj.src = 'http://img13.deviantart.net/1550/i/2011/353/4/2/mobile_game_background_by_disnie-d4jmr8r.jpg';
<canvas id="canvas" width="900" height="700"></canvas>

关于javascript - HTML5 Canvas 图像在 chrome 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967705/

相关文章:

javascript - 如何将 2 个图像并排放置,并将这些图像用作具有 2 个不同费用金额的 Stripe 付款按钮?

javascript - 如何限制输入的数量并为每个输入创建唯一的 ID?

javascript - 使用 JavaScript 保存 var 并重定向到 URL

javascript - 如何使用模运算删除 ng-repeat 生成的未定义复选框?

javascript - 使用 JS 对 HTML 表单进行文件类型验证后,如果无效,控件应保留在同一页面上

javascript - 如何从脚本中退出 Illustrator 和 ExtendScript Toolkit?

html - 如何在 html 内容之后放置 View

html - 网站响应式设计的错误

javascript - 除非调整浏览器窗口的大小,否则 dojo 小部件不会呈现

javascript - 留在 anchor #link 的页面顶部