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


Posted in Javascript onAugust 03, 2017

当设置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>

显示情况如下:

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

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

(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()时高度出现双倍效果的问题

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

Javascript 相关文章推荐
form中限制文本字节数js代码
Jun 10 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
Apr 20 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 Javascript
JS根据生日月份和日期计算星座的简单实现方法
Nov 24 Javascript
js实现三级联动效果(简单易懂)
Mar 27 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
Dec 18 Javascript
Angular Excel 导入与导出的实现代码
Apr 17 Javascript
基于Express框架使用POST传递Form数据
Aug 10 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 #Javascript
老生常谈js数据类型
Aug 03 #Javascript
详解JavaScript按概率随机生成事件
Aug 02 #Javascript
angular中的cookie读写方法
Aug 02 #Javascript
webpack进阶——缓存与独立打包的用法
Aug 02 #Javascript
使用vue构建移动应用实战代码
Aug 02 #Javascript
React Native之ListView实现九宫格效果的示例
Aug 02 #Javascript
You might like
PHP文本数据库的搜索方法
2006/10/09 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
Vue组件系列开发之模态框
2019/04/18 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python杀死一个线程的方法
2015/09/06 Python
python与php实现分割文件代码
2017/03/06 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
Python切片操作深入详解
2018/07/27 Python
python的中异常处理机制
2018/08/30 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
公务员培训自我鉴定
2013/09/19 职场文书
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
ant design charts 获取后端接口数据展示
2022/05/25 Javascript
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers