解决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 相关文章推荐
全面解析Bootstrap手风琴效果
Apr 17 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
Dec 06 Javascript
Vue组件系列开发之模态框
Apr 18 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
layui的面包屑或者表单不显示的解决方法
Sep 05 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
Vue组件基础用法详解
Feb 05 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 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
一个颜色轮换的简单例子
2006/10/09 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python爬豆瓣电影实例
2018/02/23 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
电子邮箱格式怎么写
2014/01/12 职场文书
毕业自我鉴定书
2014/03/24 职场文书
门前三包责任书
2014/04/15 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
情况说明书怎么写
2015/10/08 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript