首页 > 编程 > JavaScript > 正文

解决canvas画布使用fillRect()时高度出现双倍效果的问题

2019-11-19 15:54:52
字体:
来源:转载
供稿:网友

当设置canvas的宽度和高度时,只有内嵌css有效,外部css会出现拉伸的情况,例如:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title>  <script>    window.onload=function(){        var canvas=document.getElementById('canvas').getContext('2d');        canvas.fillRect(50,50,50,50);    }  </script>  <style>    body{        background: #000;    }    #canvas{        width: 300px;        height: 400px;        background:#fff;    }  </style></head><body>  <canvas id="canvas">    <span>不支持canvas标签</span>  </canvas></body></html> 

显示情况如下:

该效果与我们预想的不同,此时有两种修改方案:

(1) 在代码js中添加设置宽高属性的代码设置宽度和高度:

canvas.setAttribute("height",canvas.clientHeight);canvas.setAttribute("width",canvas.clientWidth);

(2) 除去外部css中设置宽高属性的代码,给canvas标签直接添加宽度和高度属性:

<canvas id="canvas" width="300" height="400" >    <span>不支持canvas标签</span></canvas>

最后显示效果如下:

以上这篇解决canvas画布使用fillRect()时高度出现双倍效果的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表