新增元素与属性
- 页面一般使用
<div>元素作为结构元素,而在HTML5文档中,新增<article>,<section>,<nav>,<aside>,<header>,<footer>,<main>


- 结构元素仅定义文档结构,不会影响页面外观,使文档更容易被机器阅读,方便网络爬虫的爬取
新增元素
<mark>元素用来高亮显示文本
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<mark>mark元素用于高亮显示文本</mark>
</body>
</html>

<details>元素用来显示段落或篇章的细节,通常和<summary>配合使用
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<details>
<summary>
HTML5简介
</summary>
html5是构建Web内容的一种语言描述方式,万维网联盟于2014年发布,被认为是互联网的核心技术之一。其新引进的语法特征能够在移动设备上支持多媒体,能更好的适应移动端设备。新的解析规则增强了灵活性、新属性、淘汰过时的或冗余的属性,真正的改变了用户与文档的交互方式。
</details>
</body>
</html>

<progress>元素用来显示进度条
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<p id="pTip">开始下载</p>
<progress value="0" max="100" id="proDownFile"></progress>
<input type="button" value="下载" onclick="Btn_Click()" />
<script>
var intvalue=0;
var intTimer;
var objPro=document.getElementById('proDownFile');
var objTip=document.getElementById('pTip');
function Interval_handler(){
intvalue++;
objPro.value=intvalue;
if(intvalue >=objPro.max){
clearInterval(intTimer);
objTip.innerHTML="下载完成";
}else{
objTip.innerHTML="正在下载"+intvalue+"%";
}
}
function Btn_Click(){
intTimer=setInterval(Interval_handler,100);
}
</script>
</body>
</html>

<meter>元素用来显示投票状态
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<p>共有120人参与投票</p>
<p>张三:
<meter value="0.1" optimum="0.6" high="0.8" low="0.2" max="1" min="0"></meter>
<span>10%</span>
</p>
<p>李四:
<meter value="70" optimum="60" high="80" low="20" max="100" min="0"></meter>
<span>70%</span>
</p>
</body>
</html>

optimum ,high,low值:

总结:value和optimum在同一区间:显示绿色;value和optimum相差一区间:显示黄色;value和optimum相差两区间:显示红色
<contenteditable>属性允许直接编辑元素内容
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<script type="text/text/javascript">
function Btn_click(){
var strArt=document.getElementById("art_0");
innterHTML;
var objArt=document.getElementById("art_1");
objArt.innerHTML='<b>编辑后:</b>'+strArt;
}
</script>
<body>
<article contenteditable id="art_0">一段可编辑的文字</article>
<article contenteditable id="art_1"></article>
<input type="button" value="保存" onclick="Btn_click()" />
</body>
</html>

<dragable>属性用来表示元素是否可以拖动,可以设置dragable=“true”(仅设置元素的dragable属性只能让元素可拖动,但拖动时未携带数据,因此用户看不到实际的拖动效果。为了让拖动操作能携带数据,应为被拖动元素的ondragstart事件指定监听器,使用JS实现元素拖放效果。)
新增表单功能
选项列表
<input type='text' list='mydata'>
<datalist id='mydata'>
<option label="Mr" value="Mister">
<option label="Mrs" value="Misteress">
<option label="Ms" value="Miss">
</datalist>

必填字段
<input type="text" required />

正则匹配
<input type="text" pattern="[0-9]{10}" />

必须是0~9(且长度是10)
类型匹配
<input type="email" />
<input type="url" />
数字字段
<input type="number" min="1" max="10" value="1" />

滑动组件
<input type="range" min="1" max="10" value="1" />

日期字段
<input type="date" min="2010-12-16" />

时间字段
<input type="time" step="1800" />
step也就是1800秒,每次30分钟累加(不指定的话,每次1秒钟)

拾色器
<input type="color" value="#ed1c24" />

HTML5图形图像元素
什么是Canvas
- Canvas元素实际上定义了一个矩形的画布区域,借助JS和自身APi,可以在该画布区域中绘制任意图形,并可以对其中的每一个像素进行控制
步骤
1.定义Canvas
<canvas id="myCanvas" width="600" height="400"></canvas>
2.调用 getContext方法获得绘图环境
var canvas=document.getElementById("myCanvas");
var context=canvas.getContext("2d");
绘制直线
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<canvas id="myCanvas" width="400" height="200" style="border:1px solid"></canvas>
<script>
var canvas=document.getElementById("myCanvas");
var context=canvas.getContext("2d");
context.strokeStyle="#ff0000";//设置画笔颜色
context.lineWidth=2;//设置线条宽度
context.moveTo(50,50);//将画笔移动到画布的起始位置,其中左上角为(0,0)
context.lineTo(150,150);//选择从起始位置开始,画到(150,150)的位置
context.stroke();//开始绘制
</script>
</body>
</html>

绘制矩形
- Canvas中矩形的绘制分为两种,一种是不带填充效果的矩形,使用rect方法或strokeRect方法;另一种是带填充效果的,一般是在设置填充颜色后,调用fillRect方法完成矩形的绘制
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<canvas id="myCanvas" width="400" height="200" style="border:1px solid"></canvas>
<script>
var canvas=document.getElementById("myCanvas");
var context=canvas.getContext("2d");
context.rect(30,50,150,100);
context.stroke();
//context.strokeRect(30,50,150,100);
context.beginPath();
context.fillStyle="#ff0000";
context.fillRect(200,50,150,100);
</script>
</body>
</html>

绘制圆形
- Canvas中绘制圆或圆弧采用arc方法,该方法有6个参数,例如:arc(100,100,50,0,Math.PI*2,0)
绘制八卦图
绘制八卦图的步骤
- 绘制左边和右边的黑色半圆和白色半圆
- 绘制上面的白色小圆和下面的黑色小圆
- 绘制上面的黑色小圆点和下面的白色小圆点
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body>
<canvas id="myCanvas" width="400" height="400" style="background-color: aliceblue;"></canvas>
<script>
var canvas=document.getElementById("myCanvas");
var context=canvas.getContext("2d");
context.beginPath();
//绘制白色半圆
context.arc(200,200,80,1.5*Math.PI,Math.PI/2,0);
context.fillStyle="white";
context.closePath();
context.fill();
//绘制黑色半圆
context.beginPath();
context.arc(200,200,80,Math.PI*0.5,Math.PI*1.5);
context.fillStyle="black";
context.closePath();
context.fill();
//绘制黑色小圆
context.beginPath();
context.arc(200,240,40,0,2*Math.PI,1);
context.fillStyle="black";
context.closePath();
context.fill();
//绘制白色小圆
context.beginPath();
context.arc(200,160,40,0,2*Math.PI,1);
context.fillStyle="white";
context.closePath();
context.fill();
//绘制白色小圆点
context.beginPath();
context.arc(200,240,5,0,2*Math.PI,1);
context.fillStyle="white";
context.closePath();
context.fill();
//绘制黑色小圆点
context.beginPath();
context.arc(200,160,5,0,2*Math.PI,1);
context.fillStyle="black";
context.closePath();
context.fill();
</script>
</body>
</html>

注意(beginpath和closepath):
这里的beginpath和closepath一定记得配套使用,否则问题会很大,后者填充颜色的时候会严重影响到 前者的填充
绘制雪花粒子特效
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body bgcolor="black">
<canvas id="myCanvas"></canvas>
<script>
var canvas=document.getElementById("myCanvas");
var context=canvas.getContext("2d");
canvas.width=window.innerWidth;
canvas.height=window.innerHeight;
var particles=[];
//循环500次,生成500粒雪花
for(var i=0;i<500;i++)
{
particles.push({
x:Math.random()*window.innerWidth,
y:Math.random()*window.innerHeight,
vx:(Math.random()*1-0.5),
vy:(Math.random()*2+0.5),
size:1+Math.random()*5,
color:"#fff"
});
}
function timeUpdate(){
context.clearRect(0,0,window.innerWidth,window.innerHeight);
var particle;
for(var i=0;i<500;i++){
particle=particles[i];
particle.x+=particle.vx;
particle.y+=particle.vy;
if(particle.x<0){
particle.x=window.innerWidth;
}
if(particle.x>window.innerWidth){
particle.x=0;
}
if(particle.y>window.innerHeight){
particle.y=0;
}
context.fillStyle=particle.color;
context.beginPath();
context.arc(particle.x,particle.y,particle.size,0,Math.PI*2);
context.closePath();
context.fill(); }
}
setInterval(timeUpdate,40);
</script>
</body>
</html>

注意(雪花只有一片)
如果你的雪花只有一片的话,那么是因为你的如下这个for循环未包含if条件
for(var i=0;i<500;i++){
particle=particles[i];
particle.x+=particle.vx;
particle.y+=particle.vy;
if(particle.x<0){
particle.x=window.innerWidth;
}
if(particle.x>window.innerWidth){
particle.x=0;
}
if(particle.y>window.innerHeight){
particle.y=0;
}
context.fillStyle=particle.color;
context.beginPath();
context.arc(particle.x,particle.y,particle.size,0,Math.PI*2);
context.closePath();
context.fill(); }
HTML5音频与视频元素
audio元素
语法形式
<audio id="music" src="music.mp3" controls loop autoplay></audio>
- src用来指定音频文件所在的路径;
- controls表示显示播放控制栏,这里采用简写形式,实际上可以写成
controls="controls"; - 属性loop表示循环播放,同样可以写成
loop="loop"的形式 - 属性autoplay表示自动播放。在移动设备中,音频或视频的自动播放会导致流量剧增,该属性在移动端会被屏蔽,必须通过相应的用户交互事件才能触发
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body >
<audio id="music" src="闲庭絮.mp3" controls="controls" loop autoplay></audio>
</script>
</body>
</html>

<audio>
<source src="music.ogg" type="audio/ogg"></source>
<source src="music.mp3" type="audio/mpeg"></source>
<source src="music.wav" type="audio/wav"></source>
你的浏览器不支持音频播放
</audio>
-
由于不同手机平台或浏览器支持的文件格式不同,为了更好的兼容性,有时候还需要为同一个音频准备不同的文件格式,常用格式OGG,MP3,WAV等
-
创建一个audio对象使用createElement方法,同时使用setAttribute方法为audio对象设置相应的属性
!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body >
<form>
<input type="button" value="创建audio对象" onclick="createAudio()" />
</form>
<script>
function createAudio(){
var x=document.createElement("audio");
x.setAttribute("controls","controls");
x.setAttribute("src","闲庭絮.mp3");
document.body.appendChild(x);
}
</script>
</body>
</html>

video元素
- HTML5中还新增可video元素,用来在网页中实现视频的播放
<video id="myVideo" src="video.mp4" width="320" height="240" contrlos autoplay loop>
您的浏览器不支持video元素
</video>
<video id="myVideo" src="video.mp4" width="320" height="240" contrlos autoplay loop preload="auto" poster="01.jpg">
<source src="movie.ogg" type="vedio/ogg"></source>
<source src="movie.mp4" type="vedio/mpeg"></source>
<source src="movie.webm" type="vedio/wav"></source>
你的浏览器不支持video元素
</video>
<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
</head>
<body >
<video id="myVedio" src="斗罗大陆 第132话 蓝光(1080p).mp4" width="320" height="240" contrlos autoplay loop preload="auto" poster="01.jpg" ></video>
</body>
</html>


的确开始播放斗罗大陆了,但是就是没图。

- 创建一个video对象使用createElement方法,同时使用setAttribute方法为audio对象设置相应的属性
<html>
<meta charset="utf-8" />
<head>
</head>
<body >
<form>
<input type="button" value="创建Video对象" onclick="createVideo()" />
</form>
<script>
function createVideo(){
var x=document.createElement("video");
x.setAttribute("width","320");
x.setAttribute("height","400");
x.setAttribute("controls","controls");
x.setAttribute("src","02.mp4");
document.body.appendChild(x);
}
</script>
</body>
</html>

估计是斗罗大陆是蓝光(1080p)的,所以打不开

自己用手机录了一段视频,然后可以打开。。好了,就是画质问题。.。
本文详细介绍了HTML5中新增的元素和属性,如<section>、<mark>、<details>、<progress>、<meter>等,以及表单的新功能,如必填字段、正则匹配、滑动组件等。同时,讲解了Canvas图形绘制、音频和视频元素的使用方法,包括音频的autoplay、loop属性和video元素的poster属性。此外,还探讨了如何利用JavaScript实现雪花粒子特效。
7511

被折叠的 条评论
为什么被折叠?



