我的启蒙--HTML5 第三章 Canvas

canvas  

  基本用法

    要使用canvas元素,必须设置其width和height属性!并且需要添加一些样式才能在页面上看见。
    2d上下文:要在canvas上画图,需要取得绘图上下文(2d)。
    通过canvas元素调用getContext()方法并传入上下文的名字“2d”,就可以获取到2d上下文对象。
    通过2d上下文对象调用相关的API就可以在canvas上肆意绘画。

   

  Canvas绘图- JavaScript 来绘制图像

    canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:

<canvas id="myCanvas" width="200" height="100"    style="border:1px solid #000000;"></canvas>

    

  全部属性和写法如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>

    </head>
    <body>
        画笔大小:
        <button>粗</button>
        <button>中</button>
        <button>细</button>
        <button>橡皮</button>
        <button>清屏</button>
        <input type="color"  id="col" value="#e44444" /><br />
        <canvas id="myCanvas" width="900" height="550" style="border: 1px solid red; "></canvas>
        <script type="text/javascript">
            drow();
            function drow(){
                var can = document.getElementById("myCanvas");//声明一个变量
                if(can.getContext){
                    var cd = can.getContext("2d");//声明2d环境
                    var but = document.getElementsByTagName("button");
                    var a = 1;
                    var b = 1;
                    but[0].onclick = function(){
                        a=10;//这里是第一个画笔
                    }
                    but[1].onclick = function(){
                        a=5;
                    }
                    but[2].onclick = function(){
                        a=1;
                    }
                    but[3].onclick = function(){
                        b+=1
                    }
                    but[4].onclick = function(){
                        cd.clearRect(0,0,900,550);
                    }
                    can.onmousedown = function(ev){
                        var x = ev.clientX-can.offsetLeft;
                        var y = ev.clientY-can.offsetTop;
                        cd.beginPath();
                        cd.moveTo(x,y);
                        cd.lineWidth = a;
                        can.onmousemove = function(ev){
                            if (b%2 == 1) {
                                var nex = ev.clientX-can.offsetLeft;//移动后的新点
                            var ney = ev.clientY-can.offsetTop;
                            cd.lineTo(nex,ney);
                            cd.strokeStyle = col.value;
                            cd.stroke();
                                but[3].innerHTML = "橡皮"

                            } else{
                                but[3].innerHTML = "铅笔"
                                var nex = ev.clientX-can.offsetLeft;//移动后的新点
                            var ney = ev.clientY-can.offsetTop;
                            cd.clearRect(nex,ney,10,10);

                            }

                        }
                        can.onmouseup = function(){
                            can.onmousemove = null;
                        }
                    }
                }

            }

        </script>

    </body>
</html>

谨记当初奋斗的自己,是他让现在的自己,享受美好,                                           敬给还在奋斗的你们,望与君共勉.

时间: 2024-10-12 21:23:08

我的启蒙--HTML5 第三章 Canvas的相关文章

我的启蒙--HTML5 第四章 本地储存

HTML5 Web 储存 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是 cookie.但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的 数据,而不影响网站的性能.数据以 键/值 对存在, web网页的数据只允许该网页访问使用. localStorage 和 sessionStorage 客户端存储数据的两个对象为: localStorage - 没有时间限制的数据存储      sessio

HTML5新增核心工具——canvas

Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素. Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度,JavaScript代码可以访问该地区,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形. Canvas可以在浏览器中绘制出十分华丽的图形,比如: 当然这应该算比较高级的用法了,本菜也不会=.= Canvas一个很大的作用就是制作游戏,本文通过博主之前做的一个小游戏来从零介绍Canvas的用法,先展示下吧: O

第三章 界面UI的基石—UI布局(1)

第三章界面UI的基石-UI布局 上一章我们一起学习了Android中的常用组件及一些UI编程的技术.在此基础上,我们就可以将这些组件有效的组织起来,构成一个美观.合理的界面. 在本章,我们先来详细说明Android中UI的几种布局,通过这几种布局就能将组件有效的组合到一起.然后说明在Android开发中如何应用样式和主题,通过样式和主题,可以预定义一系列的属性值,使整个应用程序形成统一的显示风格. 3.1用户界面的基本单元-View视图 在Android SDK中,View(视图)类是视图类的一

HTML5 file API加canvas实现图片前端JS压缩并上传 (转载)

一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅,同时大大降低了网络异常导致上传失败风险. 最最重要的体验改进点:省略了图片的再加工成本.很多网站的图片上传功能都会对图片的大小进行限制,尤其是头像上传,限制5M或者2M以内是非常常见的.然后现在的数码设备拍摄功能都非常出众,一张原始图片超过2M几乎是标配,此时如果用户想把手机或相机中的某个得意图片

Android 渗透测试学习手册 第三章 Android 应用的逆向和审计

第三章 Android 应用的逆向和审计 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们将查看 Android 应用程序或.apk文件,并了解其不同的组件. 我们还将使用工具(如 Apktool,dex2jar 和 jd-gui)来逆向应用程序. 我们将进一步学习如何通过逆向和分析源代码来寻找 Android 应用程序中的各种漏洞. 我们还将使用一些静态分析工具和脚本来查找漏洞并利用它们. 3.1 Android 应用程序拆解 Android 应

HTML与CSS入门——第三章 理解HTML和XHTML的关系

知识点: 1.以HTML创建一个简单网页的方法 2.包含每个网页必须有的所有HTML标签的方法 3.用段落和换行组织页面的方法 4.用标题组织内容的方法 5.HTML.XML.XHTML和HTML5之间的差别 3.1 从一个简单的网页开始: 作者建议:从简单的文本编辑器开始学习,之后再转向可视化工具. 扩展名支持:.htm以及.html 如.jsp,.asp,.php之类的文件类型使用超出了HTML范围的服务器端技术,需要专门的服务端支持.比如Apache服务器 3.2 每个XHMTL网页必须有

html5 +css3 第一章学习和笔记

各位同学.身为本版的斑竹.,希望各位童鞋都能学到Html5 .特此没两天更新一个学习笔记和大家一起学习Html5.... 语法改变       1.新增的元素和废除的元素       2.新增的属性和废除的属性       3.全局属性 html5和4的区别:DOCTYPE.声明.内容类型.字符的编码的制定方法.元素标记的省略.布尔值的类型.引号的省略 一:html5中的标记方法        1内容类型:.html  .htm        2DOCTYPE声明: <!DOCTYPE html

构建之法前三章读后感

一. 软件作为一个产品,在提供用户使用前经历了许多工序,我们用工程的方式将开发软件的工序,过程加以工程化,系统化.成立了一套完整的体系后,有利于帮助我们开发软件,乃至于大型的系统. 软件具有一定的特殊性,使得软件工程师们做开发提升了一定的难度,但软件工程有助于软件系统的开发,帮助工程师们设计,构建,测试和维护软件.所以,软件工程的最终目的是帮助工程师们创造“足够好”的软件,提高软件的质量,用户满意度,可靠性,可维护性等. 第一章问题:怎么才算是一个真正的软件工程师? 二.   一个优秀的软件,通

0320 《构建之法》前三章观后感

第一章.为我们解释什么是软件,什么是软件工程,读完这章对这些概念有一定的认识这章让我明白,代码不能盲目的敲,好的软件并非两三天,并非一两个人就能赶出来的,需要大家的精诚合作.同时,在编写程序之前,还需要做一系列的分析.设计,要满足客户的需求,后续还要对软件进行测试.维护等.在这之前,我一直觉得能把程序运行,能有正确的结果,那就完成任务了,可这只是整个软件流程的一部分而已.看了邹老师的书,才知道其实创新有很多的方面,除了技术,还有商业思路,差异化等等,这些都给了我很大的感触,作为一名程序员,我们不