解决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 相关文章推荐
Mozilla中显示textarea中选择的文字
Sep 07 Javascript
jquery text(),val(),html()方法区别总结
Nov 04 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
Dec 16 Javascript
详细解密jsonp跨域请求
Apr 15 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
May 28 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
Feb 25 Javascript
Javascript之面向对象--接口
Dec 02 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 Javascript
Vue数组更新及过滤排序功能
Aug 10 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
Nov 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入门基础之php代码写法
2011/12/30 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
php阳历转农历优化版
2016/08/08 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python中logging库的使用总结
2017/10/18 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
wxPython实现带颜色的进度条
2019/11/19 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
演讲比赛获奖感言
2014/02/02 职场文书
老公出轨后的保证书
2015/05/08 职场文书
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫