1

我想将 .gif 图像设置为画布的背景图像,以便获得背景的动画视图。但我只获得了显示在其上的静态图像。

这是我的 Windows 8 应用程序的 HTML 代码。

<body>
  <canvas id="canvas"></canvas>
  <img id="scream" src="images/gangam.gif" alt="The Scream" width="220" height="277">
</body>
<script>
  var canvas = document.getElementById("canvas"),
      ctx = canvas.getContext("2d"); // Create canvas context                                                                          

  function paintCanvas() {
    ctx.fillStyle = "white";
    ctx.fillRect(0, 0, W, H);
    var img = document.getElementById("scream");
    ctx.drawImage(img, W/2, H/2);
  }
</script>
4

2 回答 2

2

为什么不让画布透明,并在其上方放置(CSS 定位)画布?这不是比必须做低级成像更好吗?

否则画布一次只显示一个静态图像,当然您的 JavaScript 可以对其进行动画处理,但这不是静态的。

检查这个小提琴:http: //jsfiddle.net/pK7Xx/2/

CSS

#canvas, #scream {
    width: 500px;
    height: 212px;
    position: relative;
    display: block;
}

#canvas {
    margin-top: -212px;
}

HTML

<img id="scream" src="http://24.media.tumblr.com/tumblr_ma1wafniaA1rbonrno1_500.gif" alt="The Scream">
 <canvas id="canvas"></canvas>

使用透明画布绘制 var canvas = document.getElementById("canvas"), context = canvas.getContext("2d"); // 创建画布上下文

function something() {
context.font = "bold 25px sans-serif";
context.fillText("Hello!", 100, 43);
}

something();
于 2013-07-28T16:19:15.810 回答
1

不,没有办法显示.gifin <canvas>。您可以使用精灵setInterval()模仿动画。

于 2013-07-28T15:32:30.490 回答