解决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 相关文章推荐
初试jQuery EasyUI 使用介绍
Apr 01 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
简单实现bootstrap导航效果
Feb 07 Javascript
微信小程序顶部可滚动导航效果
Oct 31 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
Aug 17 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
Mar 07 Javascript
JS实现的对象去重功能示例
Jun 04 Javascript
JS实现横向轮播图(中级版)
Jan 18 Javascript
Element Carousel 走马灯的具体实现
Jul 26 Javascript
解决vue+webpack项目接口跨域出现的问题
Aug 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
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
js 页面输出值
2008/11/30 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
jupyter安装小结
2016/03/13 Python
EM算法的python实现的方法步骤
2018/01/02 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
详解python中的Turtle函数库
2018/11/19 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Python模块常用四种安装方式
2020/10/20 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
施工安全承诺书
2014/05/22 职场文书
外贸英文求职信范文
2015/03/19 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
MySQL系列之四 SQL语法
2021/07/02 MySQL