1.canvas绘制

步骤

l 添加canvas元素,定义id和范围

l js里获取canvas元素

l 通过getContext()方法获取2D绘制环境

l 通过不同的函数进行图形绘制

坐标定位

l 绘制的图形定位都是以canvas的左上角为(0,0)原点

绘制直线

l moveTo(): 规定起始点

l lineTo(): 从起点绘制到规定坐标的直线

l stroke(): 实现绘制直线的功能

l fill(): 实现填充功能

实例:绘制一个三角形

html代码

js代码

window.onload = function(){

var canvas =     document.getElementById("canvas");

canvas.width = 800;

canvas.height = 800;

var context  = canvas.getContext('2d');

context.strokeStyle = "red";

context.moveTo(100, 100);

context.lineTo(200, 100);

context.lineTo(150,50);

context.lineTo(100,100);

context.stroke();

};

1.png

绘制矩形

l fillStyle():设置矩形填充颜色。

l fillRect(x,y,width,height)。

l strokeStyle():设置矩形轮廓颜色。

l strokeRect(x,y,width,height)。

绘制圆形(弧形)

l beginPath():开始绘制路线

l arc(x,y,radius,startAngle,endAngle,anticlockwise)

设置绘制的中心点,半径,起始角度,结束角度和绘制方向。

贝塞尔曲线

二次贝塞尔曲线

l quadraticCurveTo(cp1x,cp1y,x,y)

cp1x,cp1y 表示一个控制点坐标;x,y代表终点坐标。

三次贝塞尔曲线

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

cp1x,cp1y和cp2x,cp2y分别代表两个控制点。

实例1:绘制一个五角星

window.onload = function() {

var canvas = document.getElementById("canvas");

var context = canvas.getContext('2d');

drawStar(context, 120, 120, 80, 30, 10, "yellow", 0);

}

function drawStar(context, x, y, R, r, width, color, rotation) {

context.beginPath();

for (var i = 0; i < 5; i++) {

context.lineTo(Math.cos((18 + i * 72 - rotation) / 180 * Math.PI) * R + x, -Math.sin((18 + i * 72 - rotation) / 180 * Math.PI) * R + y);

context.lineTo(Math.cos((54 + i * 72 - rotation) / 180 * Math.PI) * r + x, -Math.sin((54 + i * 72 - rotation) / 180 * Math.PI) * r + y);

}

context.closePath();

context.lineWidth = width;

context.fillStyle = color;

context.fill();

}

2.png

实例2:绘制宝马标志

window.onload = function() {

var canvas = document.getElementById("canvas");

canvas.width = 800;

canvas.height = 800;

var context = canvas.getContext('2d');

//圆心坐标x,y  内圆半径r  外圆半径R

var x = 100;

var y = 100;

var r = 100;

var R = r + 50;

var colors = Array("#87CEFA", "#FAFAFA", "#000");

context.beginPath();

context.translate(100, 100);

context.arc(x, y, R, 0, Math.PI * 2);

line_gra = context.createLinearGradient(-10, -10,20, 50);

line_gra.addColorStop(0, "#ddd");

line_gra.addColorStop(1, "#262626");

context.lineWidth = 3;

context.strokeStyle = "#000";

context.fillStyle = line_gra;

context.closePath();

context.stroke();

context.fill();

drawBigRound(context, x, y, r, 53, "#ADD8E6", 7);

drawBm(context, x, y, r, colors);

drawBigRound(context, x, y, r, 3, "#9FB6CD", 5);

context.beginPath();

context.fillStyle = "#fff";

context.font = "bold 40px verdana";

context.fillText("M", 80, -10);

context.rotate(Math.PI / 6);

context.fillText("W", 125, -75);

context.rotate(-(Math.PI / 2));

context.fillText("B", 0, 35);

context.restore();

}

function drawBm(context, x, y, r, colors) {

var color;

for (var i = 0; i < 4; i++) {

context.beginPath();

context.moveTo(x, y);

context.arc(x, y, r, Math.PI * i / 2, Math.PI * (i + 1) / 2);

if (i == 0 || i == 2) {

color = colors[0];

} else {

color = colors[1];

}

context.fillStyle = color;

context.lineWidth = 2;

context.strokeStyle = colors[2];

context.closePath();

context.fill();

context.stroke();

}

}

function drawBigRound(context, x, y, r, addr, color, lineWidth) {

context.beginPath();

context.arc(x, y, r + addr, 0, Math.PI * 2);

context.lineWidth = lineWidth;

context.strokeStyle = color;

context.closePath();

context.stroke();

}

bm.png

2.CSS3 阴影 box-shadow

l box-shadow: h-shadow v-shadow blur spread color inset;

l h-shadow 必需。水平阴影的位置。允许负值。

l v-shadow 必需。垂直阴影的位置。允许负值。

l blur 可选。模糊距离。

l spread 可选。阴影的尺寸。

l color 可选。阴影的颜色。请参阅 CSS 颜色值。

l inset 可选。将外部阴影 (outset) 改为内部阴影。

3.CSS3 transform属性

transform: none|transform-functions;

l transform:rotate(): 旋转,deg是度的意思

transform: rotate(-10deg);

l transform:skew(): 倾斜

transform:skew(20deg);

l transform:scale(): 缩放,x方向2倍,y方向1.5倍

transform: scale(2, 1.5);

l transform:translate(): 平移,x方向平移120px,y方向平移10px

transform:translate(120px,10px);

4.CSS3 transtion属性

transition: property duration timing-function delay;

l transition-property 规定设置过渡效果的 CSS 属性的名称。

l transition-duration 规定完成过渡效果需要多少秒或毫秒。

l transition-timing-function 规定速度效果的速度曲线。

l transition-delay 定义过渡效果何时开始。

div{

width:100px;

transition: width 2s;

-moz-transition: width 2s; /* Firefox 4 */

-webkit-transition: width 2s; /* Safari 和 Chrome */

-o-transition: width 2s; /* Opera */

}

html5知识总结,HTML5初级知识总结相关推荐

  1. HTML5 与 CSS3 jQuery部分知识总结

    一.    HTML5 为什么需要HTML5 什么是HTML5 HTML5现状及浏览器支持 HTML5优点与缺点 HTML5语法规则与文档声明 HTML5新增表达标签 HTML5多媒体组件 HTML5 ...

  2. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

  3. 人工智能(10)---机器学习知识体系篇(初级篇,中级篇,高级篇)

    机器学习知识体系篇(初级篇,中级篇,高级篇) 下面是自己总结一套人工智能机器学习整个知识体系,一起学习,有总结不到位的希望大家给出纠正! 一 人工智能基础语法篇 二 人工智能中级篇 三 人工智能高级篇

  4. 计算机操作员初级理论知识试卷3,初级计算机操作员理论知识试卷.doc

    初级计算机操作员理论知识试卷.doc 初级计算机操作员理论知识试卷( 技校2012年第 批) 考生姓名 考试日期 得分 第一题 单项选择题(每题2分,共60分)1.在购买计算机时,"Pent ...

  5. 计算机科学与技术初级知识,计算机科学与技术专业课程有哪些

    计算机科学与技术专业课程有哪些2021-06-15 14:18:02文/李文源 数字电路.计算机系统结构.算法.程序设计语言.软件工程.并行分布计算.智能技术.计算机图形学与人机交互等知识领域的基本内 ...

  6. 网页设计与制作html5教学目标,HTML5+CSS3网页设计与制作—教学大纲(10页)-原创力文档...

    博学谷--让IT 教学更简单,让IT 学习更有效 <HTML5+CSS3 网页设计与制作>课程教学大纲 (课程英文名称) 课程编号: 学 分:5 学分 学 时:74 学时 (其中:讲课学时 ...

  7. html5网页设计教程电子书,HTML5教程(使用HTML5设计网络富客户端应用)

    该作品是PDF文件格式请下载 福昕PDF阅读器 新的强大的多媒体和交互功能的HTML5,<HTML5: Designing Rich Internet Applications >包括风格 ...

  8. 2013 HTML5 峰会,HTML5 守望者的盛宴

    2013,HTML5 峰会再度来袭,一场属于 HTML5 守望者的盛宴!HTML5 作为新兴技术,未来光明但道路曲折.不管 HTML5 是遥不可及的幻想,还是眼下移动互联网的救命稻草?需要我们携手共建 ...

  9. html5 svg特性,HTML5新特性——HTML 5 Canvas vs. SVG

    Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个 ...

  10. HTML5视频教程,HTML5项目实战,HTML5中文指南,HTML5使用手册

    HTML5视频教程,HTML5项目实战,HTML5中文指南,HTML5使用手册. 超过2G 的 HTML5 视频教程免费分享,免费下载! 尚硅谷前端HTML5视频_HTML & CSS 核心基 ...

最新文章

  1. 从V.C.Space抄来的
  2. ACL 2020 | 基于稠密段落检索的开放域问答系统技术
  3. 修改python默认的编码方式
  4. MathType可以在Word、PPT中插入矩阵吗
  5. WireShark抓包,may be caused by ip checksum offload的解决办法
  6. C#设计模式:迭代器模式(Iterator Pattern)
  7. chr sqlserver_SQLServer常用函数对比
  8. 应用安全 - 代码审计 - PHP
  9. 关于http-server的备选方案-- browser-sync
  10. 用excel制作双层饼图_教程:用Excel做饼图之复合饼图与双层饼图(2)
  11. PM42L-048 步进电机
  12. 关于笔记本WLAN(无线)口共享给以太网口
  13. After Effects CS4 \CS5\CS6\CC2015\CC2017\CC2018\CC2019安装包及教程
  14. MYSQL函数group_concat的使用
  15. UE4插件研发 So Easy
  16. 详解3DTouch集成篇
  17. 关于条件编译和预编译的一点学习心得
  18. 入驻华为云·云享专家了~
  19. 财政部、税务总局:集成电路设计和软件企业免两年所得税
  20. 解决国产电脑微信卡顿问题的脚本

热门文章

  1. java设计优化--观察者模式
  2. ActiveMQ 入门
  3. 图画hadoop -- 生态圈
  4. comboBox设置为只读(只选)
  5. 深入浅出mfc学习笔记——六大关键技术之仿真_运行时和动态创建
  6. python selenium自动化_python selenium自动化之-环境搭建
  7. 在python中等号前面与后面分别是什么意思-Python中%是什么意思?python中百分号如何使用?...
  8. python安装在什么系统下最好-windows系统下Python环境的搭建
  9. python起步输入-第 4 节 小Python 起步
  10. python常见错误-新手常见Python错误及异常解决处理方案