无法在画布上绘制超过八个矩形

发布于 2024-10-08 18:07:58 字数 1298 浏览 0 评论 0原文

我正在尝试在画布上绘制简单的矩形。这是我的代码。 代码完全执行。但它只绘制了 7 个完整的矩形和第 8 个二分之一。 最后两个矩形未绘制。我做错了什么?我尝试了 IE9 beta、FF3 和 Chrome 9。请帮忙。

<html>
<head>
<script src="javascript/jquery-1.4.4.min.js"></script>
<script type="text/javascript" language="javascript">

$(document).ready(function () {
    drawsegment($('#divTree'));
});

function drawsegment(widget) {
    var $ctx = $('<canvas />', {
        width: '300',
        height: '200'
    });
    widget.html($ctx);
    var ctx = $ctx[0].getContext('2d');

    ctx.fillStyle = "red";
    ctx.fillRect(0, 0, 255, 20);
    ctx.fillStyle = "yellow";
    ctx.fillRect(0, 20, 255, 20);
    ctx.fillStyle = "blue";
    ctx.fillRect(0, 40, 255, 20);
    ctx.fillStyle = "green";
    ctx.fillRect(0, 60, 255, 20);
    ctx.fillStyle = "violet";
    ctx.fillRect(0, 80, 255, 20);
    ctx.fillStyle = "white";
    ctx.fillRect(0, 100, 255, 20);
    ctx.fillStyle = "black";
    ctx.fillRect(0, 120, 255, 20);
    ctx.fillStyle = "gray";
    ctx.fillRect(0, 140, 255, 20);
    ctx.fillStyle = "yellow";
    ctx.fillRect(0, 160, 255, 20);
    ctx.fillStyle = "blue";
    ctx.fillRect(0, 180, 255, 20);
}

</script>
</head>
<body>
    <div id="divTree"></div>
</body>
</html>

I am trying to draw simple rectangles on a canvas. Here is my code.
Code executes completely. But it draws only 7 rectangles completely and 8th one half.
Last two rectangles are not drawn. What am I doing wrong? I tried on IE9 beta, FF3 and Chrome 9. Please help.

<html>
<head>
<script src="javascript/jquery-1.4.4.min.js"></script>
<script type="text/javascript" language="javascript">

$(document).ready(function () {
    drawsegment($('#divTree'));
});

function drawsegment(widget) {
    var $ctx = $('<canvas />', {
        width: '300',
        height: '200'
    });
    widget.html($ctx);
    var ctx = $ctx[0].getContext('2d');

    ctx.fillStyle = "red";
    ctx.fillRect(0, 0, 255, 20);
    ctx.fillStyle = "yellow";
    ctx.fillRect(0, 20, 255, 20);
    ctx.fillStyle = "blue";
    ctx.fillRect(0, 40, 255, 20);
    ctx.fillStyle = "green";
    ctx.fillRect(0, 60, 255, 20);
    ctx.fillStyle = "violet";
    ctx.fillRect(0, 80, 255, 20);
    ctx.fillStyle = "white";
    ctx.fillRect(0, 100, 255, 20);
    ctx.fillStyle = "black";
    ctx.fillRect(0, 120, 255, 20);
    ctx.fillStyle = "gray";
    ctx.fillRect(0, 140, 255, 20);
    ctx.fillStyle = "yellow";
    ctx.fillRect(0, 160, 255, 20);
    ctx.fillStyle = "blue";
    ctx.fillRect(0, 180, 255, 20);
}

</script>
</head>
<body>
    <div id="divTree"></div>
</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴随着你 2024-10-15 18:07:58

画布宽度和高度应该是画布元素本身定义的属性,而不是样式属性:

var $ctx = $('<canvas />');
widget.html($ctx);
widget.children('canvas').attr('width',300).attr('height',200);

Canvas width and height should be defined attributes of canvas element itself instead of styled attributes:

var $ctx = $('<canvas />');
widget.html($ctx);
widget.children('canvas').attr('width',300).attr('height',200);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文