解决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函数
Aug 19 Javascript
js实现俄罗斯方块小游戏分享
Jan 31 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
js选项卡的实现方法
Feb 09 Javascript
JavaScript中string对象
Jun 12 Javascript
javascript实现去除HTML标签的方法
Dec 26 Javascript
JavaScript简单生成 N~M 之间随机数的方法
Jan 13 Javascript
JavaScript无操作后屏保功能的实现方法
Jul 04 Javascript
解决webpack无法通过IP地址访问localhost的问题
Feb 22 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
Aug 28 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
Sep 14 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调用Oracle存储过程
2006/10/09 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Python 用户登录验证的小例子
2013/03/06 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
Python按钮的响应事件详解
2019/03/04 Python
Flask配置Cors跨域的实现
2019/07/12 Python
python查看数据类型的方法
2019/10/12 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
pycharm的python_stubs问题
2020/04/08 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
python使用smtplib模块发送邮件
2020/12/17 Python
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
四种会话跟踪技术
2015/05/20 面试题
大学生毕业自荐信
2013/10/10 职场文书
学校元旦晚会方案
2014/02/19 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
golang特有程序结构入门教程
2021/06/02 Python