• HTML5 Canvas
        简单的说就是js+html5可以自定义绘制任何图形
  • 认识Canvas元素
  1. <canvas id="canvas" width="500" height="500">
  2. <!-- 不支持canvas的浏览器,这里会显示~~ -->
  3. </canvas>
上面即是一个标准的Canvas的元素,暂时先当一个div去理解,只不过这个Canvas可以作图而已。
  • 认识2D渲染上下文
通过js去访问,这个js对象是你真正绘制图形的地方。
小提示:绘图使用js访问操作2D渲染上下文对象,最后通过Canvas这个元素展示出来,也就是说Canvas只是一个展示的作用!
  • 认识坐标系统
如何设定自定义图形在页面上的位置?使用坐标系统,坐标系统的概念同js的offsetTop,offsetLeft一模一样,就是以电脑屏幕最左上角的那个像素作为原点(0,0),横向是x轴为第一个0,纵向是y轴为第二个0。
  • 访问2D渲染上下文对象
上面三个知识点够用了,马上实例操作
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>认识Canvas</title>
  6. <body>
  7. <canvas id="canvas" width="500" height="500">
  8. <!-- 不支持canvas的浏览器,这里会显示~~ -->
  9. </canvas>
  10. </body>
  11. </html>
  12. <script>
  13. var canvas = document.getElementById('canvas');//获取canvas的dom元素
  14. var context = canvas.getContext('2d');//获得2d渲染上下文对象
  15. context.fillRect(0,0,800,800);//创建一个矩形,从左上角x轴0,y轴0的位置,绘制一个宽300,高200的矩形
  16. </script>
第14行很重要,获取2d对象,你可能会想到有没有3d,很抱歉,还没出来。
第15行fillRect方法绘制矩形用的,这里补充一下,关于颜色默认用的黑色填充内容,fillRect(x,y,width,height)。
小提示:假如Canvas的宽高数值比fillRect设置的数值小的话,那么fillRect的填充将会占满Canvas,溢出部分看不见的。就如同这里的Canvas宽高都是500像素,但是fillRect却是800像素,最终绘制出的只有Canvas当初设置的500像素的内容,溢出的300像素就不可见。
 
刷新页面你将可能到一个500像素的黑色色块,看起来效果应该不错吧?
好了,使用strokeRect替换fillRect,其他保持原样,再次刷新页面,看到了什么呢?动手试一试吧~
这两个函数参数都一样的,只是展示方式不一样~~
 
 
每天一点点,很多天就是很多点点~
 

Canvas基础认识的更多相关文章

  1. HTML5移动开发学习笔记之Canvas基础

    1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...

  2. canvas基础之旅

    canvas 主要使用2D rendering context  API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...

  3. canvas 基础知识整理(二)

    html部分: <canvas id="myCanvas" width="800" height="800" ></can ...

  4. canvas 基础知识整理(一)

    canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...

  5. 《HTML5 CANVAS基础教程》读书笔记

    一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...

  6. canvas 基础知识

    canvas 基础 低版本的ie不支持html5,需要引入excanvas.js来让ie支持canvas. 检测支持canvas <canvas id="canvas" wi ...

  7. canvas基础语法

    前面的话 canvas顾名思义是定义在浏览器中的画布.它不仅是一个普通的元素,更是一个强大的编程工具.它的出现已然超过了web基于文档的设计初衷,将网页这一形态的应用推向了另一个高度.利用canvas ...

  8. canvas API ,通俗的canvas基础知识(一)

    在没学canvas的时候,觉得canvas是这么的神秘,这么的绚丽,这么的高深,用canvas做出来的效果是如此的炫酷,能做的事情如此的宽广,简直让我心生敬畏之心,时常感叹:我要是得此技能,必定要上天 ...

  9. canvas基础动画示例

    canvas基础动画示例 本文主要用最简单的例子,展示canvas动画效果是如何实现的 动画效果,是一个球绕着一点旋转 const canvas = document.getElementById(' ...

  10. canvas基础学习

    /** * Created by ty on 2016/7/11. * canvas 基础 */ window.onload = function() { var canvas = document. ...

随机推荐

  1. WPF 开发 WebBrowser

    WebBrowser WebBrowser 报错如何屏蔽 CEF(Chromium Embedded Framework)       参考 WPF, Chrome Embedded and WebA ...

  2. struts2+hibernate整合-实现登录功能

    最近一直学习struts2+hibernate框架,于是想把两个框架整合到一起,做一个小的登录项目.其他不多说,直接看例子. 1).Struts2 和hibernate的环境配置 包括jar包.web ...

  3. Referenced file contains errors (http://www.springframework.org/schema...错误

    Referenced file contains errors (http://www.springframework.org/schema...错误 Referenced file contains ...

  4. [LeetCode] UTF-8 Validation 编码验证

    A character in UTF8 can be from 1 to 4 bytes long, subjected to the following rules: For 1-byte char ...

  5. [LeetCode] House Robber II 打家劫舍之二

    Note: This is an extension of House Robber. After robbing those houses on that street, the thief has ...

  6. [LeetCode] Insert Interval 插入区间

    Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...

  7. C#进阶系列——WebApi 跨域问题解决方案:CORS

    前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. WebApi系列文章 C#进阶系列— ...

  8. 千万级高并发负载均衡软件HAproxy

    1负载均衡产品介绍 基于硬件的负载均衡设备例如F5,Big-IP,基于软件的负载均衡产品HAproxy,LVS,nginx在这些软件产品中,又分为基于操作系统的软负载实现和基于第三方应用的软负载实现. ...

  9. iOS 组件化漫谈

    1.准备工作 由于工程越来越大,里面的文件也越来越多.很多时候merge代码的时候工程文件起了冲突之后,若 .xcodeproj文件冲突 打开之后很难以修改. 架构其实相对开发来说还是比较难于下手的东 ...

  10. 小尝试一下 cocos2d

    好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 ...