解决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 相关文章推荐
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
May 07 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
JavaScript实现in-place思想的快速排序方法
Aug 07 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
jQuery实现点击关注和取消功能
Jul 03 jQuery
Vue学习笔记之表单输入控件绑定
Sep 05 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
Aug 13 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 Javascript
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 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 get_meta_tags()函数
2014/05/12 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
Python 多核并行计算的示例代码
2017/11/07 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
出纳员岗位职责风险
2014/03/06 职场文书
大型活动组织方案
2014/05/10 职场文书
出国留学担保书
2014/05/20 职场文书
服装设计师求职信
2014/06/04 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
好员工观后感
2015/06/17 职场文书
应收账款管理制度
2015/08/06 职场文书