文章目录
- 新增元素与属性
- 新增元素
- optimum ,high,low值:
- 总结:value和optimum在同一区间:显示绿色;value和optimum相差一区间:显示黄色;value和optimum相差两区间:显示红色
- 新增表单功能
- 选项列表
- 必填字段
- 正则匹配
- 类型匹配
- 数字字段
- 滑动组件
- 日期字段
- 时间字段
- 拾色器
- HTML5图形图像元素
- 什么是Canvas
- 步骤
- 1.定义Canvas
- 2.调用 getContext方法获得绘图环境
- 绘制直线
- 绘制矩形
- 绘制圆形
- 绘制八卦图
- 绘制八卦图的步骤
- 注意(beginpath和closepath):
- 绘制雪花粒子特效
- 注意(雪花只有一片)
- HTML5音频与视频元素
- audio元素
- 语法形式
- video元素
新增元素与属性
- 页面一般使用
<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)的,所以打不开
自己用手机录了一段视频,然后可以打开。。好了,就是画质问题。.。