解决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 jquery做的图片连续滚动代码
Jan 06 Javascript
javascript控制在光标位置插入文字适合表情的插入
Jun 09 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 Javascript
微信小程序 点击控件后选中其它反选实例详解
Feb 21 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
Vue slot用法(小结)
Oct 22 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
vue中如何自定义右键菜单详解
Dec 08 Vue.js
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
JAVA/JSP学习系列之二
2006/10/09 PHP
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
分享PHP header函数使用教程
2013/09/05 PHP
php实现水仙花数示例分享
2014/04/03 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
Python re模块介绍
2014/11/30 Python
Python中异常重试的解决方案详解
2017/05/05 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
求职信的最佳写作思路
2014/02/01 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
杜甫草堂导游词
2015/02/03 职场文书
干部外出学习心得体会
2016/01/18 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python
基于Python实现射击小游戏的制作
2022/04/06 Python