Canvas 宽度、高度设置
在HTML5中插入一个Canvas元素,如下:
<canvas id="mycanvas"></canvas>
要想在该画板上进行操作,则需要先取得其执行上下文context,
var canvas = document.getElementById("mycanvas");
var context = canvas.getContext("2d");
取得目标画板 canvas 的执行上下文 context 之后,通过画图 API 进行画图操作。假设这里想要在canvas 上画出三个由不同颜色填充的矩形,实现如下:
context.fillRect(5, 5, 145, 145);
context.fillStyle = "rgb(0, 162, 232)"; //指定填充色
context.fillRect(40, 55, 145, 145);
context.fillStyle = "rgba(255, 0, 0, 0.2)";
context.fillRect(75, 105, 145, 145);
该段代码的目标实现效果为:
但,理想是丰满的,现实却很骨感。实现显示效果为:
为什么会这样呢?肯定是由哪里不对!事实上问题也不难,就是 Canvas 元素的默认宽度为 300px ,默认高度为 150px 。在上面的图形中,其高度超出了其默认高度值,而又没有给canvas 设置新的高度,所以超出的部分就没有显示出来。为了正常显示目标效果图像,则需要重新设置其宽度和高度值。在这里可以通过三种方法去设置Canvas 的width, height 属性值。
- 直接在 <canvas> 元素中设置,如下:
<canvas width="300" height="300"></canvas>
注意,这里不是使用 style="width:300px; height:300px“ 去设置。
- 使用 canvas 的属性值设置,如下:
canvas.width = 300;
canvas.height = 300;注意,这里设置值时不需要带单位。
- 使用 setAttribute() 方法设置,如下:
canvas.setAttribute("width", 300);
canvas.setAttribute("height", 300);
另外,可以通过两个常量值去设置其宽度和高度,使其等于屏幕的宽度和高度,分别为 screen.availWidth 和 screen.avail.Height 。
学习资料:Developers-Guide-to-HTML5-Canvas
Canvas 宽度、高度设置的更多相关文章
- fancybox 点击 js脚本判断验证,fancybox的宽度高度设置
当我们在使用fancybox做弹出窗口的时候,可能在弹窗之前就需要判断一些验证条件,例如我这里有个案例,用户必须先得勾选一个 那么怎么做呢?我们用到fancybox的一个onStart方法就可以了 $ ...
- span宽度高度设置
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 使用 <embed> 标签显示 flash文件(swf)格式 ,如何设置 width 和 height 宽度,高度.
1. embed 标签 支持 .swf 格式. .flv 的不支持. 2. 通常情况下, 网站中上传 多个 flash文件. 它的默认大小是不一样的. 而且 可以 宽度 大于 高度(横向的) ...
- 实现span设置宽度(行内元素本来不支持调宽度高度这些样式)(变成行内块元素:display:inline-block;)
实现span设置宽度(行内元素本来不支持调宽度高度这些样式)(变成行内块元素:display:inline-block;) 一.总结 1.将span从行内元素变成行内快元素就可以调了: 设置样式的时候 ...
- 移动端canvas文字图片合成并生成图片(canvas宽度自适应移动端屏幕)
这是我之前做的一个关于文字图片合成的代码,供大家参考,不足支出还望体谅:具体的注释在代码里都有,有什么不懂了可以留言互相交流.<!DOCTYPE html> <html lang=& ...
- HTML学习之给div高度设置百分比不生效的问题
这几天在学习HTML的知识,今天想做一个极为简单的页面,就是分为头部,内容和底部,本来用三个div即可,可是给div高度设置百分比时发现不生效,具体页面如下,非常简单. 下面是html部分: < ...
- js 获取浏览器/网页宽度高度整理
网页宽度.高度: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.bo ...
- 相册 垂直居中; 水平居中. 1)宽度 大于高度, 宽度 100%; 2) 高度 大于 宽度 , 高度100%; getimagesize , list --->line-height , text-align, vertical-align, max-height, max-width
一: 效果: 1) 黑色 部分是 相框. 2) 图片 要实现 水平居中, 垂直居中 3) 如果 宽度 大于 高度 ,那么 宽度 100% ,如图1 , 高度 自适应 ,同时不能超过黑色相框的 高度 ; ...
- RecyclerView常见问题解决方案,RecyclerView嵌套自动滚动,RecyclerView 高度设置wrap_content 无作用等问题
1,ScrollView或者RecyclerView1 嵌套RecyclerView2 进入页面自动跳转到recyclerView2上面页面会自动滚动貌似是RecyclerView 自动获得了焦点两 ...
随机推荐
- C++学习(五)入门篇——基本类型
面向对象编程的本质是设计并扩展自己的数据类型,让类型和数据匹配. 内置C++分成两种类型:基本类型和复合类型 1.简单变量 程序需要存储信息时,必须记录三个基本属性 (1)信息将存储在哪 (2)要存储 ...
- 聊天类APP功能测试总结
做聊天类的APP 测试已经有一段时间了,也许哪天就不做了,趁今天轻松点,记录下来. 聊天类的APP都差不多,不管是微信,还是米聊,还是QQ,如果抓住了共性,测试的点都差不太多. 我用编程的术语来比方功 ...
- node.js fs.open 和 fs.write 读取文件和改写文件
Node.js的文件系统的Api //公共引用 var fs = require('fs'), path = require('path'); 1.读取文件readFile函数 //readFile( ...
- mybatis入门介绍二
相信看过我的上一篇博客的同学都已经对mybatis有一个初步的认识了.这篇博客主要是对mybatis的mapper代理做一下简单的介绍,希望能够帮助大家共同学习. 我的上一篇博客:mybatis入门介 ...
- CentOS上javaweb开发环境搭建
CentOS上javaweb开发环境搭建 安装jdk yum list java* yum install java-1.7.0-openjdk* -y java -version 安装tomcat ...
- 看完给跪了:技术大牛总结的Github与华为软件开发云完整对比
华为软件开发云配置管理 服务和Github是国内外比较有代表性的代码托管平台,它们以git作为版本管理工具,使项目中身处各地的人员可以协同工作,主要操作涉及仓库.分支.提交.pull request等 ...
- AKOJ -- 1529 -- 寻找最大数
1529: 寻找最大数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 107 Solved: 53 上一题SubmitStatus标签打分编辑题目信 ...
- Unity 使用TexturePackerGUI打包图集 Sprite 图片边上有线
原来遇到的问题 保存下解决方法 修改Shape Padding图片间距的值为4
- 国内阿里Maven仓库镜像及自己收集镜像库
国内阿里Maven仓库镜像Maven配置文件Maven仓库速度快 国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. 最新更新:2016年11月11 ...
- coder该何去何从
无论是什么语言的学习,都不是一帆风顺的,如今随着编程大军的壮大,工作越来越难找,各位coder已经把中心偏移到了学历上面,导致技术水平的参差不齐,以及虚假学历的泛滥,这样的恶性循环下,不知前路在何方?