解决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语句中的CDATA标签的意义
May 09 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JavaScript编程中的Promise使用大全
Jul 28 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
简单的js表格操作
Sep 24 Javascript
js使用highlight.js高亮你的代码
Aug 18 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
Aug 28 Javascript
微信小程序富文本渲染引擎的详解
Sep 30 Javascript
vue写一个组件
Apr 09 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
vue+express 构建后台管理系统的示例代码
Jul 19 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
JS实现随机点名器
2020/04/12 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
Python缩进和冒号详解
2016/06/01 Python
python difflib模块示例讲解
2017/09/13 Python
解读python如何实现决策树算法
2018/10/11 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
浅析Python 责任链设计模式
2020/09/11 Python
python 下载文件的多种方法汇总
2020/11/17 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
联想德国官网:Lenovo Germany
2018/07/04 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
市场营销专业毕业生求职信
2014/03/26 职场文书
小学课外阅读总结
2014/07/09 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书