canvas教程

HTML5 Canvas入门学习教程_html5教程技巧-H5教程(2)

字号+ 作者:H5之家 来源:H5之家 2017-12-20 15:13 我要评论( )

window 对象是 DOM 的最高一级,需要对这个对象进行检测来确保开始使用 Canvas 应用程序之前,已经加载了所有的资源和代码。 document 对象包含所有在 HTML 页面上的 HTML 标签。需要对这个对象进行检索来找 出用 J

window 对象是 DOM 的最高一级,需要对这个对象进行检测来确保开始使用 Canvas 应用程序之前,已经加载了所有的资源和代码。
document 对象包含所有在 HTML 页面上的 HTML 标签。需要对这个对象进行检索来找 出用 JavaScript 操纵<canvas>的实例。

JavaScript放置位置
使用 JavaScript 为 Canvas 编程会产生一个问题:在创建的页面中,从哪里启动 JavaScript程序?
把 JavaScript 放进 HTML 页面的<head>标签中是个不错的主意,这样做的好处是很容易找到它,也是上一章我们介绍<head>中所提到的。但是,把 JavaScript 程序放在这里就意味着整个 HTML 页面要加载完 JavaScrpit 才能配合 HTML 运行,这段 JavaScript 代码也会在整个页面加载前就开始执行了。结果就是,运行 JavaScript 程序之前必须检查 HTML 页面是否已经加载完毕。
最近有一个趋势是将 JavaScript 放在 HTML 文档结尾处的</body>标签之前,这样就可以确保在 JavaScript 运行时整个页面已经加载完毕。然而,由于在运行<canvas>程序前需要使用 JavaScript 测试页面是否加载,因此最好还是将 JavaScript 放在<head>中。
不过本人不走寻常路(笑),所以之后的案例,还是按照自己的编码风格将JavaScript代码放在了<body>的尾部。当然,如果JavaScript代码有些多,就推荐使用加载外部 .js 文件的方式。代码大致如下:

JavaScript Code复制内容到剪贴板

  • 在实际项目开发中,都是将HTML、CSS、JS三者完全分离的。不过用于案例演示代码略少,所以大多没有使用加载外部 .js 文件的方式。


    获取canvas对象
    获取canvas对象其实就是一句话的事情。

    JavaScript Code复制内容到剪贴板

  • var用于变量定义,由于JS是弱类型语言,所以定义啥变量都用var。跟在var之后的canvas是变量。使用document对象的getElementById()的方法,通过id获取对象。之前我们为<canvas>标签赋予了一个id,名叫canvas,所以该句话最后一个canvas是指<canvas>的id——canvas。(是不是有点绕,需要自己多读几遍捋清楚。)
    获得画笔(2D环境)
    画画首先需要啥?画笔啊。获取canvas画笔也是一句话的事情,就是直接使用刚才获得的canvas对象,调用它的getContext("2d")方法,即可。

    JavaScript Code复制内容到剪贴板

  • 这里的context便是画笔了。
    在其他教程中都是使用2D环境这个专有术语,我觉得画笔更加形象。灵感引自Java中Graphics类的g画笔,原理与之相同。


    总结
    准备工作只有三步:

    1.布置画布:通过添加<canvas>标签,添加canvas元素
    2.获取画布:通过<canvas>标签的id,获得canvas对象
    3.获得画笔:通过canvas对象的getContext("2d")方法,获得2D环境

    对应的代码也就是三句话:

    JavaScript Code复制内容到剪贴板

    完整代码如下。

    JavaScript Code复制内容到剪贴板

    2016317111405657.png (1433×771)

    注意几点:

    1.JavaScript代码需要包裹在<script>标签中。

    2.window.onload = function(){}加载页面后就要立即执行,表示网页加载完执行后面的那个function函数体的内容。

    至此,画布和画笔已经准备完毕,接下来就让我们使用画笔(context对象)绘制出高逼格的图像吧!觉醒吧!艺术家之魂!

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • canvas 从初级到XX 1# 部分非基础原生API的使用 [初级向]

      canvas 从初级到XX 1# 部分非基础原生API的使用 [初级向]

      2017-12-21 08:00

    • Python flask wtforms从画布dataurl而不是form.input.data读取图

      Python flask wtforms从画布dataurl而不是form.input.data读取图

      2017-12-19 17:00

    • 微信小程序,小程序论坛,weixin,微信小程序canvas绘制坐标图

      微信小程序,小程序论坛,weixin,微信小程序canvas绘制坐标图

      2017-12-19 12:02

    • 关于canvas处理图片的问题

      关于canvas处理图片的问题

      2017-12-19 10:22

    网友点评
    s