解决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 相关文章推荐
js实现广告漂浮效果的小例子
Jul 02 Javascript
解决checkbox的attr(checked)一直为undefined问题
Jun 16 Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 Javascript
Bootstrap Fileinput文件上传组件用法详解
May 10 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
80%应聘者都不及格的JS面试题
Mar 21 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
Sep 30 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 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 has encountered an Access Violation
2007/01/15 PHP
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Django添加feeds功能的示例
2018/08/07 Python
mac使用python识别图形验证码功能
2020/01/10 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
internal修饰符起什么作用
2013/12/16 面试题
服装设计师职业生涯规划范文
2014/02/28 职场文书
开发房地产协议书
2014/09/14 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年实习期工作总结
2014/11/27 职场文书
瘦西湖导游词
2015/02/03 职场文书
一个都不能少观后感
2015/06/04 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
浅析Django接口版本控制
2021/06/26 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers