IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 初识JavaScript、HTML5画布 -> 正文阅读

[JavaScript知识库]初识JavaScript、HTML5画布

目录

一、简单的Javascript

1、JavaScript的引入

2、变量

3.document对象

二、HTML画布

1、认识画布

2、使用画布

3、绘制线

4、线的样式

5、线的路径

6、填充路径

7、绘制圆

三、案例——绘制火柴人


一、简单的Javascript

1、JavaScript的引入

1.1 脚本语言:不用专门的编译系统,代码可以在浏览器上直接运行

1.2 应用效果:
????????(1)验证输入内容

????????
????????(2)网页特效?

????????
????????(3)窗口的应用

????????
????????(4)文字特效

?????????

?1.3 如何应用:?

(1)行内嵌入式:

<a href="javascript:alert('欢迎来到西邮')">西安邮电大学</a>

alert():是一个函数,作用是弹出一个消息提示框

<button onclick="alert('欢迎来到湘潭大学')">湘潭大学</button>

onclick:表示当用户点击按钮时

(2)页面嵌入式:在html页面中嵌入<script>标签

<script type="text/javascript">
?? ??? ??? ? ? js代码
?? ??? ??? ?</script>

(3)外链式--推荐使用
第一步:先创建一个js文件(扩展名为.js的文件)
第二步:使用<script src="外部的js文件">标签将外部的js文件链接到页面中?

2、变量

2.1 变量:在程序运行前后值会发生改变的量.用于存放数据的内存单元

2.2 命名规则:

A、包含字母、数字、下划线,必须以字母或下划线开头,不能以数字开头
B、不能有空格、加、减等特殊符号
C、不能使用关键字(保留字)作为变量名
D、变量名严格区分大小

2.3 定义方式:?var ?变量名;

var unit, room;                          // 声明变量
var unit = 3;                              // 为变量赋值
var room = 1001;                     // 为变量赋值
var fname = 'Tom', age = 12;   // 声明变量的同时赋值

2.4在浏览器中如何测试js代码?

第一步:打开浏览器的开发者工具
第二步:Elements:看到页面元素的样式等信息
? ? ? ? ? ? ? Console:终端的输出信息?

3.document对象

3.1 document对象:文档对象,代表了整个页面。通过该对象可以获取页面中的标签

3.2?

二、HTML画布

1、认识画布

HTML5的画布:在页面中绘制图形的特殊区域

2、使用画布

2.1 创建画布:

<canvas id="画布名称" width="数值" height="数值">

? 您的浏览器不支持canvas

</canvas>

2.2 获取画布:要想在JavaScript中控制画布,首先要获取画布。使用getElementById()方法可以获取网页中的画布对象。

var canvas = document.getElementById('cavs');

2.3 获取画笔:有了画布之后,要开始绘图,还需要准备一只画笔,这支画笔就是context对象。context对象也被称为绘制环境,通过该对象,可以在画布中绘制图形。

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

3、绘制线

3.1 确定初始位置(起始点):在绘制图形时,我们首先需要确定从哪里下“笔”,这个下“笔”的位置就是初始位置。

var cas = document.getElementById('cas');
var context = cas.getContext('2d');
context.moveTo(100,100);

3.2??确定连接端点(终点):连线端点用于定义一个端点,并绘制一条从该端点到初始位置的连线。在画布中使用lineTo(x,y)方法来定义连线端点。

context.lineTo(100,100);

3.3 绘制线:通过初始位置和连线端点可以绘制一条线,但这条线并不能被看到。这时我们需要为线添加描边,让线变得可见。使用画布中的stroke()方法,可以实现线的可视效果。

context.stroke();

4、线的样式

4.1?设置线宽:使用画布中的lineWidth属性可以定义线的宽度,该属性的取值为数值(不带单位),以像素为计量。

context.lineWidth='10';

4.2?描边的颜色

context.strokeStyle='#f00';
context.strokeStyle='red';

4.3线条端点的形状 :默认情况下,线的端点是方形的,通过画布中的lineCap属性可以改变端点的形状。

lineCap=’属性值

butt:无形状,方形的边缘 默认值
round:圆形端点
square:方形端

5、线的路径

5.1 重置路径:在同一画布中,我们添加再多的连线端点也只能有一条路径,如果想要开始新的路径,就需要使用beginPath()方法,当出现beginPath()即表示路径重新开始。


5.2闭合路径:闭合路径就是将我们绘制的开放路径,进行封闭处理,多点的路径闭合后会形成特定的形状。在画布中,使用closePath()方法闭合路径。

6、填充路径

使用画布中的fill()方法填充图形:

<body>
    <canvas id="cas" width="300" height="300"></canvas>
    <script type="text/javascript">
       var cas = document.getElementById('cas');
       var ctx = cas.getContext('2d');
       ctx.moveTo(10,10);  //确定起始点
       ctx.strokeStyle = '#00f'; //设置描边颜色
       ctx.lineTo(10,150); //确定第一个端点
       ctx.lineTo(150,150);//确定第二个端点
       ctx.closePath();//闭合路径
    //    ctx.stroke(); //描边
       ctx.fillStyle = 'red'; //设置填充色
       ctx.fill();//进行填充
    </script>
</body>

7、绘制圆

在画布中,使用arc()方法绘制圆或弧线

arc(x,y,r,开始角,结束角,方向)

x和y:表示圆心坐标
r:圆半径
开始角:0、0.5*Math.PI、1*Math.PI、1.5*Math.PI、2*Math.PI
结束角:0、0.5*Math.PI、1*Math.PI、1.5*Math.PI、2*Math.PI
方向:true(逆时针)、false(顺时针)

三、案例——绘制火柴人

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <canvas id="cas" width="1000" height="1000">浏览器不支持</canvas>
    <script type="text/javascript">
    var cxt = document.getElementById('cas').getContext("2d");

    //1.绘制头部
    cxt.arc(400,80,50,0,2*Math.PI);
    cxt.lineWidth='5';
    cxt.stroke();

    //胡子
    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(380,100);
    cxt.lineTo(338,110);
    cxt.stroke();

    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(420,100);
    cxt.lineTo(460,110);
    cxt.stroke();

    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(380,90);
    cxt.lineTo(330,100);
    cxt.stroke();

    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(420,90);
    cxt.lineTo(470,100);
    cxt.stroke();


    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(380,110);
    cxt.lineTo(340,130);
    cxt.stroke();
    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(420,110);
    cxt.lineTo(460,130);
    cxt.stroke();

    //绘制嘴
    cxt.beginPath()
    cxt.arc(400,100,10,0,2*Math.PI);
    cxt.lineWidth='1';
    cxt.fillStyle='pink';
    cxt.fill();
    cxt.stroke();

    //绘制眼睛
    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(420,70);
    cxt.lineTo(410,60);
    cxt.lineTo(400,70)
    cxt.stroke();

    cxt.beginPath()
    cxt.lineWidth='3';
    cxt.moveTo(390,70);
    cxt.lineTo(380,60);
    cxt.lineTo(370,70)
    cxt.stroke();
    

    // //绘制头发
    cxt.beginPath()
    cxt.arc(335,60,20,Math.PI/400,5*Math.PI/1,true);
    cxt.lineWidth='5';
    cxt.stroke();

    cxt.beginPath()
    cxt.arc(465,60,20,Math.PI/400,5*Math.PI/1,true);
    cxt.lineWidth='5';
    cxt.stroke();

    //2.绘制躯干
      //2.1绘制脖子
    cxt.beginPath();
    cxt.moveTo(400,130);
    cxt.lineTo(400,140);
    cxt.lineWidth='5';
    cxt.stroke();

      //2.2绘制身体
    cxt.beginPath();
    cxt.moveTo(400,140);
    cxt.lineTo(400,260);
    cxt.lineWidth='25';
    cxt.stroke();

    //3.绘制文件夹
    cxt.beginPath();
    cxt.moveTo(360,200);
    cxt.lineTo(440,200);
    cxt.lineTo(440,250);
    cxt.lineTo(360,250);
    cxt.closePath();
    cxt.fillStyle='red';
    cxt.fill();
    cxt.lineWidth='2';
    cxt.stroke();

    //4.绘制手臂
      //4.1绘制胳膊
    cxt.beginPath();
    cxt.moveTo(400,140);
    cxt.lineTo(440,200);
    cxt.lineTo(400,240);
    cxt.lineWidth='10';
    cxt.stroke();
    
      //绘制手掌
    cxt.beginPath();
    cxt.arc(400,240,10,0,2*Math.PI);
    cxt.fillStyle='#000';
    cxt.fill();

    //5.绘制腰部
    cxt.beginPath()
    cxt.moveTo(380,400);
    cxt.lineTo(400,260);
    cxt.lineTo(420,400);
    cxt.lineTo(400,240);
    cxt.lineWidth='10';
    cxt.stroke();

    //绘制前脚
    cxt.beginPath();
    cxt.arc(365,400,15,0,1*Math.PI,true);
    cxt.closePath();
    cxt.lineWidth='5';
    cxt.stroke();

    //绘制后脚
    cxt.beginPath();
    cxt.arc(405,400,15,0,1*Math.PI,true);
    cxt.closePath();
    cxt.lineWidth='5';
    cxt.stroke();
    
    </script>;  
</body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:19:03  更:2021-11-10 12:19:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 5:32:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码