首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次使用几幅油画

一次使用几幅油画
EN

Stack Overflow用户
提问于 2014-07-16 18:25:44
回答 1查看 58关注 0票数 2

我想使用HTML5 5的canvas标记和JavaScript在页面中裁剪几幅图像。问题是,页面只显示其中一幅图像。

我该怎么办?我尝试过的代码如下:

代码语言:javascript
复制
<canvas id="myCanvas" width="300" height="300"></canvas>
<canvas id="myCanvas" width="300" height="300"></canvas>
<canvas id="myCanvas" width="300" height="300"></canvas>
<script>
  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');
  var imageObj = new Image();

  imageObj.onload = function() {
    // draw cropped image
    var sourceX = 0;
    var sourceY = 0;
    var sourceWidth = 200;
    var sourceHeight = 150;
    var destWidth = sourceWidth;
    var destHeight = sourceHeight;
    var destX = canvas.width / 2 - destWidth / 2;
    var destY = canvas.height / 2 - destHeight / 2;

    context.drawImage(imageObj, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight);
  };

imageObj.src ='http://static.adzerk.net/Advertisers/3478c54721cd466fb6f7d3afe16e97d4.gif';

</script>

Fiddle:http://jsfiddle.net/soheilyou/54VTh/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-16 18:31:43

正如一些家伙所说,您对每个画布都使用相同的id --这是不可能的。尝试给每个人一个唯一的id,或者使用一个类。

然后,这只是一个接一个地抓住元素的问题--您可以使用处理JavaScript或者更容易地使用jQuery (如下所示)。

查看这个更新的Fiddle或查看以下JavaScript片段:

代码语言:javascript
复制
var canvases = $('.myCanvas');
$(canvases).each(function () {
    var canvas = $(this).get(0); //Grab the canvas node from the jQuery container.
    var context = canvas.getContext('2d');
    var imageObj = new Image();

    imageObj.onload = function () {
        var sourceX = 0;
        var sourceY = 0;
        var sourceWidth = 200;
        var sourceHeight = 150;
        var destWidth = sourceWidth;
        var destHeight = sourceHeight;
        var destX = canvas.width / 2 - destWidth / 2;
        var destY = canvas.height / 2 - destHeight / 2;

        context.drawImage(imageObj, sourceX, sourceY, 
                          sourceWidth, sourceHeight, destX, 
                          destY, destWidth, destHeight);
    };

    imageObj.src = 'path/to/your/image.png';
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24788044

复制
相关文章

相似问题

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