HTML+Css学习-------Canvas

<canvas>标签

有属性width/height可以用来设置宽高,

 但是宽高默认为:300px * 150px (width * height)

javascript操纵:

getContext( "2d" ):获取CanvasRenderingContext2D对象。

校验兼容性:

  var canvas = document.getElementById(‘tutorial‘);
  
  if (canvas.getContext){
  
        var ctx = canvas.getContext(‘2d‘);
          // drawing code here
          
   } else { 
   
  // canvas-unsupported code here
  
  }

简单的操作:

绘制矩形:

     fillRect(xywidthheight)


     strokeRect(xywidthheight)


     clearRect(xywidthheight)

     

     rect(xywidthheight)

          //当调用该方法,moveTo()的自动调用,参数为(0,0)

路径:

  beginPath()

      closePath()

      fill()   //可以填充没有闭合的图形

      stroke()

绘制圆形:

arc(xyradiusstartAngleendAngleanticlockwise)

绘制Bezier and quadratic曲线

quadraticCurveTo(cp1x, cp1y, x, y)

bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

操纵图像:

首先创建图像对象

var img = new Image();   // Create new img element

img.src = ‘1.png‘; // Set source path

或者引用图像对象

然后使用

drawImage(imagexy)

drawImage(imagexywidthheight)

drawImage(imagesxsysWidthsHeightdxdydWidthdHeight)

注意:要在图片加载完后使用:

var img = new Image();   // Create new img element

img.addEventListener("load", function() {

// execute drawImage statements here

}, false);

img.src = ‘myImage.png‘; // Set source path

使用style和color

fillStyle = color/gradient object/pattern object

    strokeStyle = color/gradient object/pattern object

默认情况下:color为:black

透明度

globalAlpha:设置当前的透明度

rgba(255,0,0,0.5):使用rgba来设置透明度,最后一个参数(0-1)

style:

lineWidth = value  //值必须是正数,默认值为1

lineCap = type     //but , round , square

lineJoin = type    //miter , round , bevel

miterLimit = value

gradient:

createLinearGradient(beginX, beginY, endX, endY)

createRadialGradient(beginXbeginYr1endXendYr2)

可以通过 addColorStop()为渐变分配颜色

        gradient.addColorStop(positioncolor)

       

    pattern:

        createPattern(imagetype)

type:repeat,x-repeat,y-repeat,no-repeat

shadow:

shadowOffsetX = float

shadowOffsetY = float

shadowBlur = float

//上面3个属性的值不会受变换矩阵的影响,默认为0

shadowColor = <color>

坐标变换:

save()

restore()

 translate:translate(xy)

    rotating:rotate(angle)

    scaling:scale(x, y)

    transform:transform(m11m12m21m22dxdy)

setTransform(m11m12m21m22dxdy)

图像组合:

    composition:globalCompositeOperation = type

                      clip()

图像动画:

animation:

基本步骤:Clear the canvas

Save the canvas state

Draw animated shapes

                    Restore the canvas state


文字:

填充文字:fillText(string,x,y[,MaxWidth])

    绘制轮廓:strokeText(string,x,y[,MaxWidth])

    属性:

        font

        textAlign

        textBaseline

    测量文字宽度:

        获取measureText对象,

        使用width属性来获取宽度。

时间: 2024-08-04 16:17:18

HTML+Css学习-------Canvas的相关文章

CSS学习之float解析

转自:http://www.w3cplus.com/css/float.html 一.float是什么? float即为浮动,在CSS中的作用是使元素脱离正常的文档流并使其移动到其父元素的“最左边”或“最右边”.下面解释下这个定义中的几个名词的概念: 文档流:在html中文档流即为元素从上至下排列的顺序. 脱离文档流:元素从正常的排列顺序被抽离. 最左边/最右边:上述的移动到父元素最左和最右是指元素往左或往右移动直到碰到另一个浮动元素或父元素内容区的边界(不包括padding). 二.float

css学习感言

在培训学校学习了一个多月了,最近主要讲的是css,准确的说老师上课讲css用了8天的时间,讲课的速度飞快,可能是对于我这种零基础的学生来说吧,感觉学起来很吃力,不过在这个过程中也学到了许多知识,这里主要介绍一下css中选择器权重的问题,css中选择器分为三类1.元素选择器2.类选择器3.id选择器4.通配符 ,这里主要介绍前三类. 元素选择器:例如table,input,button等他们分别表示一大类,称之为元素.它的权重是最小的,相当于日常生活中重量单位的一克.它是对一大类比如table,i

UGUI初学习--------Canvas

今天仔细研究了一下UGUI觉得有必要写一篇文章来分享一下.废话不多说直接开码字..... 作者之前也学过NGUI.这里来说明一下,UGUI和NGUI的渲染结构略有不同,UGUI中将NGUI中的深度处理项取消了.UGUI的渲染是按照Hierarchy的UI游戏对象的排列顺序从上到下依次渲染的,重叠部分后渲染的会把先渲染的挡住.总结一句话:下在上前,子在父前.为了修改各个UI控件的绘制顺序,开发者可以采用以下两种方法:拖动Hierarchy视图里的各UI控件对象,改变它们在Canvas下的排列顺序:

CSS学习笔记09 简单理解BFC

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>BFC</title> 6 <style type="text/css"> 7 .div1 {background-color: #FCE38A; width: 200px; height: 100px;}

css 学习笔记 一

 css学习笔记1 1.选择特定元素的选择符: 上下文选择符 标签1 标签2 {声明}      其中标签2是要选择的目标,而只有在标签1是其祖先元素(不一定是父元素)的情况下才会被选中.     css代码: body代码: 理解:section标签 article标签就属于上下文的关系,即article为section的后代,只有应用了section的样式,才能应用article的样式.注意:继承关系中的空格问题,有空格的表示祖先与后代的关系,css写法,body的代码为,说明页面样式表文件

CSS学习(二)—浮动

一. 定义 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 解决的问题:"如何在一行显示多个div元素" 二. 浮动与不浮动区别 图1 图2 区别 不浮动的框是由上往下独占一行的,而浮动的框是紧靠着排列的.图2中d1.d2.d3都是向左浮动的,所以先把d1放在紧靠着父框摆放,然后把d2紧靠着d1摆放,最后d3紧靠着d2摆放.向右浮动亦与之类似. 语法: float : none | left |right 参数: none : 对象不浮动 left :

2016/2/25 html+css学习资源

html+css学习资源 1.Position is Everything,一个描述和展示在各种浏览器中发现的bug,并提供css解决方法的网站,顶! 2.一个国外的网页设计论坛 3.http://css-tricks.com/ 4.http://html5demos.com/ 有很多html5 DEMO 5.http://www.alistapart.com 6.http://webreference.com/ 7.http://www.webmonkey.com/ 8.http://www.

css学习笔记四

广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作(二列浮动布局) 3:w3cschool静态页面制作 4:垂直菜单,水平菜单(li设置float),圆角菜单(利用背景图片), 鼠标移上去菜单高度变化(margin-top以及line-height), 鼠标移上去菜单宽度变化 (用jq写是利用hover和hide,用原生js写是文档加载完,遍历li里

html+css学习笔记 3[浮动]

inline-block/float(浮动) 回顾:inline-block 特性:      1.块在一排显示 2.内联支持宽高 3.默认内容撑开宽度 4.标签之间的换行间隙被解析(问题) 5.ie6 ie7不支持块属性标签的inline-block(问题) float浮动: 1.块在一排显示     2.内联支持宽高     3.默认内容撑开宽度      4.脱离文档流     5.提升层级半层 文本流 float:left | right | none | inherit; 文档流是文档