HTML5

HTML5

HTML5和HTML大体上有何不同?
HTML5 Canvas
HTML5 Video(视频)
HTML5 Audio(音频)
HTML5 Input 类型
HTML5 语义元素
HTML5 Web 存储

HTML5和HTML大体上有何不同?

HTML5在HTML原有的基础上对某些元素进行了改进、移除,再次基础上,又新增了很多新的特性:

1.用于绘画的 canvas 元素

2.用于媒介回放的 video 和 audio 元素

3.对本地离线存储的更好的支持

4.新的特殊内容元素,比如 article、footer、header、nav、section

5.新的表单控件,比如 calendar、date、time、email、url、search

HTML5 Canvas

1.什么是HTML5 Canvas?

HTML5 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.

标签只是图形容器,您必须使用脚本来绘制图形。

你可以通过多种方法使用Canva绘制路径,盒、圆、字符以及添加图像。

2.如何使用canvas去绘制元素?

注意:所有的绘制工作都必须在JavaScript内部完成

(一)创建canvas标签

<canvas id='myCanvas'></canvas>

(二)找到<canvas元素>

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

(三)创建context对象

var cvs = myCanvas.getContext("2d");

getContext(“2d”) 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

(四)为创建的context对象添加属性

cvs.fillStyle='blue';
//右20.下10.100×100正方形
cvs.fillRect(20,10,100,100);

这里面包含了两个属性:
1.fillstyle属性:

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle默认设置是#000000(黑色)。

2.fillRect属性(Canvas 坐标)

Canvas的左上角坐标为(0,0),这里fillRect(20,10,100,100)
意味着从(0,0)点开始向X轴右偏移20,延Y轴向下偏移10,并且绘制出一个100×100的正方形。

以上代码拼接而成:

<style>
	#myCanvas{
		border:1px solid red;
	}
</style>
<body>
<canvas id='myCanvas'></canvas>

<script>
var myCanvas = document.getElementById("myCanvas");
var cvs = myCanvas.getContext("2d");
cvs.fillStyle='blue';
cvs.fillRect(20,10,100,100);
</script>

</body>

显示效果如下:
在这里插入图片描述

除了上面第四点中提到的fillstyle属性以及fillRect属性,还有一些其他的比如:

1.用Canvas绘制线条
绘制线条的步骤:

(1)确立起始点:moveTo(x,y);
(2)确定结束点: lineTo(x,y);
(3)输入开始画的指令:stroke()

辅助功能:

  线条加粗 : 2d对象.lineWidth = 5 		
  线条颜色 :  2d对象.strokeStyle='red'

一下代码通过绘制线条顺时针方向绘制了一个长方形。

<style>
#myCanvas{
	border:1px solid red;
}
</style>
<body>

<canvas id='myCanvas'></canvas>
	
<script>
var myCanvas = document.getElementById("myCanvas");	
myCanvas.width = 1000;
myCanvas.height=500;

var cvs = myCanvas.getContext("2d");

cvs.moveTo(10,20);
cvs.lineTo(100,20);

cvs.lineTo(100,100);
cvs.lineTo(10,100);
cvs.lineTo(10,20);

//外边框颜色
cvs.strokeStyle='orange';
cvs.fillStyle='blue'; //填充颜色
// cvs.fill();
cvs.stroke();

</script>
</body>

效果图如下:
在这里插入图片描述
在绘制线条时,还有两个方法比较常用:

1》beginPath:方法开始一条路径,或重置当前的路径。
2》closePath: 方法创建从当前点到开始点的路径。

举一个例子:

var myCanvas = document.getElementById("myCanvas");
myCanvas.width = 1000;
myCanvas.height = 500;

var cvs = myCanvas.getContext("2d");

cvs.moveTo(10,10);
cvs.lineTo(50,50);
cvs.lineTo(10,100);
cvs.strokeStyle='red';
cvs.stroke();


cvs.beginPath();
cvs.moveTo(80,10);
cvs.lineTo(120,50);
cvs.lineTo(80,100);
cvs.strokeStyle='blue';
cvs.stroke();
//cvs.closePath();


cvs.beginPath();
cvs.moveTo(150,10);
cvs.lineTo(190,50);
cvs.lineTo(150,100);
cvs.strokeStyle='pink';
cvs.stroke();

让线条重置当前路径好开始新的绘制,效果如下:
在这里插入图片描述
2.用Canvas绘制一个圆形

一、2d对象.arc()

arc(x,y,r,sAngle,eAngle,counterclockwise);

x:横向位置
y:垂直位置
r:半径
sAngle:起始点
eAngle:结束点
counterclockwise:方向

false ==>顺时针 true ==>逆时针

x,y确立中心点的位置,r确定半径,起始点和结束点如图所示。
在这里插入图片描述

 <style>
    #myCanvas {
      border:1px solid red;
    }
  </style>
</head>
<body>


<canvas id='myCanvas'></canvas>

<script>
var myCanvas= document.getElementById("myCanvas");
myCanvas.width=200;
myCanvas.height = 120;

var cvs = myCanvas.getContext("2d");
cvs.arc(100,60,50,0,2*Math.PI);
cvs.stroke();


</script>

显示效果如下:
在这里插入图片描述
3.用Canvas绘制文本

font - 定义字体

fillText(text,x,y) - 在 canvas 上绘制实心的文本

strokeText(text,x,y) - 在 canvas 上绘制空心的文本

相对简单
1.使用 fillText():实心

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.fillText("Hello World",10,50);

在这里插入图片描述
2.使用 strokeText():空心

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.strokeText("Hello World",10,50);

在这里插入图片描述
3.用Canvas填充渐变

渐变可以填充在矩形, 圆形, 线条, 文本等等, 各种形状可以自己定义不同的颜色。

以下有两种不同的方式来设置Canvas渐变:

createLinearGradient(x,y,x1,y1) - 创建线条渐变

createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

当我们使用渐变对象,必须使用两种或两种以上的停止颜色。

addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0至1.

使用渐变,设置fillStyle或strokeStyle的值为渐变,然后绘制形状,如矩形,文本,或一条线。

使用 createLinearGradient():

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

// Create gradient
var grd=ctx.createLinearGradient(0,0,200,0);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");

// Fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);

在这里插入图片描述

HTML5 Video(视频)

<video><video>

格式:
	ogg 、 mp4 、webm

属性:

	poster==》视频图


<video controls poster='1.jpg'>
	<source src='preview.webm'>
	<source src='preview.mp4'>
	您的浏览器版本太低了
</video>


source==》资源加载 :按照网速,浏览器支持程度..

HTML5 Audio(音频)

兼容问题

		<audio>
			
			<h1>您的浏览器不支持</h1>

		</audio>

属性:

	src 	 ==>音频的url
	controls ==>显示控件
	loop     ==>循环播放
	autoplay ==>自动播放
	preload  ==>页面加载时进行加载,并预备播放


js的api方法

	play()  ==>开始播放
	pause() ==>暂停播放

HTML5 Input 类型

<form action="">
  <!-- email 类型用于应该包含 e-mail 地址的输入域。 -->
  <!-- 在提交表单时,会自动验证 email 域的值是否合法有效: -->
	<input type="email">
  <hr>
  
  <!-- url 类型用于应该包含 URL 地址的输入域。在提交表单时,会自动验证 url 域的值。 -->
	<input type="url">
	<hr>
	<input type="number">
  <hr>
  
  <!-- range 类型用于应该包含一定范围内数字值的输入域。range 类型显示为滑动条。 -->
	<input type="range">
  <hr>
  
  <!-- date 类型允许你从一个日期选择器选择一个日期。 -->
	<input type="date">
  <hr>
  
  <!-- time 类型允许你选择一个时间。 -->
	<input type="time">
  <hr>
  
  <!-- search 类型用于搜索域,比如站点搜索或 Google 搜索。 -->
	<input type="search">
  <hr>
  
  <!-- color 类型用在input字段主要用于选取颜色,如下所示 -->
	<input type="color">
  <hr>
  
  <!-- number 类型用于应该包含数值的输入域。 -->
  <!-- max- 规定允许的最大值
       min - 规定允许的最小值
       step - 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
       value - 规定默认值 -->
	<input type="number" value='2' step='3' max='20' min='3'>
	<hr>
	
	<input type="submit" value="提交">


</form>

在这里插入图片描述

HTML5 语义元素

HTML5提供了新的语义元素来明确一个Web页面的不同部分:

<header>:页眉
<nav> :导航
<section>:区域
<article>:独立的内容
<aside> :辅助信息的内容
<figcaption>:描述图像或视频的标题部分
<figure>:描述图像或视频
<footer>:页脚

在这里插入图片描述

HTML5 Web 存储

使用HTML5可以在本地存储用户的浏览数据。

早些时候,本地存储使用的是cookies。但是Web 存储需要更加的安全与快速.
这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能。

数据以键/值对存在, web网页的数据只允许该网页访问使用。

客户端存储数据的两个对象是:

localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储

在使用web存储前,先检查浏览器是否支持 localStorage 和

sessionStorage
if(typeof(Storage)!=="undefined")        
  {        
  // 是的! 支持 localStorage  sessionStorage 对象!         
  // 一些代码.....         
  }        
else        
  {        
  // 抱歉! 不支持 web 存储。         
  }

localStorage 对象

localStorage 对象存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
常用的api:
保存数据:localStorage.setItem(key,value);
读取数据:localStorage.getItem(key);
删除单个数据:localStorage.removeItem(key);
删除所有数据:localStorage.clear();
得到某个索引的key:localStorage.key(index);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值