解决canvas画布使用fillRect()时高度出现双倍效果的问题
更新时间:2017年08月03日 08:03:53 投稿:jingxian
下面小编就为大家带来一篇解决canvas画布使用fillRect()时高度出现双倍效果的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
当设置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()时高度出现双倍效果的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
这篇文章主要介绍了Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-12-12
解决typescript 提示 Object is possibly'null'的N种方案
这篇文章主要介绍了typescript 提示 Object is possibly ‘null‘ 的N种解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03
JavaScript的removeChild()函数用法详解
removechild 函数可以删除父元素的指定子元素,通过本文给大家介绍javascript的removeChild()函数用法,对js removechild函数相关知识感兴趣的朋友一起学习吧2015-12-12


最新评论