1:HTML5新特性
标签:nav article footer header aside.....
表单新特性:input type取值date time week email number
表单属性required readonly disabled
表单控件标签:progress datalist ..
<!-- 标签:nav article footer header aside..... -->
<nav></nav>
<article></article>
<footer></footer>
<header></header>
<aside></aside>
html5有哪些新增特性?
1、语义化标签:header article footer section nav
2、表单控件:number date time email url search
3、音频和视频:audio video
4、本地离线存储:localStorage sessionStorage cookies
5、画布:canvas
对html语义化标签或者语义化的理解
1、使页面内容结构化、便于浏览器、搜索引擎解析
2、即使没有css样式也以一种文档格式显示,并且容易阅读
3、有利于搜索引擎优化
4、便于阅读、维护和理解
说一下src和href有什么区别?
href是超文本引用,它是指向资源的位置,建立与目标文件的联系;
src目的是把资源下载到页面中; script src='https://www.b';
2:H5API
2.1自定义数据属性
data-xxx 是一类被称为自定义数据属性的属性,它赋予我们在所有HTML元素上嵌入自定义数据属性的能力和可以通过HTML和DOM进行专有数据的交换。所有的属性都可以通过HTMLElement.prototype.dataset来访问.自定义属性都可以保存到dataset中。
<div id="one" flag='two' data-id='1001' data-item='test'></div>
<script>
window.onload = function () {
var div = document.querySelector('#one');
console.log(div.dataset)
console.log(div.dataset.id)
console.log(div.dataset.item)
}
</script>
2.2媒体元素
1.属性
1.进度条controls
<video src="./音视频/1.mp4" controls> </video>
2.页面一加载是否自动播放autoplay
<video src="./音视频/1.mp4" controls autoplay> </video>
3.post封面
<video src="./音视频/1.mp4" poster='./img/1.jpg'> </video>
4.是否循环播放loop
<video src="./音视频/1.mp4" controls loop> </video>
5.muted静音
<video src="./音视频/1.mp4" controls loop autoplay> </video>
2.方法
1.播放 play
var video=$('video')[0];
if($(this).text() === '播放'){
video.play()
}
2.暂停 pause
if($(this).text()==='暂停'){
video.pause()
}
3.切换 paused 音视频是否是暂停状态
if($(this).text()==='切换'){
if(video.paused){
video.play()
}else{
video.pause()
}
}
4. // 控制音量+
if($(this).text()==='音量+'){
video.volume=(video.volume>0.9?0.9:video.volume )+0.1
}
5.if($(this).text()==='音量-'){
video.volume=(video.volume<0.1?0.1:video.volume)-0.1
}
6.// 快进
if($(this).text()==='快进'){
video.currentTime+=5
}
7.// 回退
if($(this).text()==='回退'){
video.currentTime-=5
}
8.// 倍数播放
if($(this).text()==='倍速播放'){
video.playbackRate=0.5
}
3.事件
video.onvolumechange=function(){
// console.log('音量改变事件监听')
if(this.volume>0.5){
alert('继续调高声音会损伤耳膜')
}
}
案例
<!-- 音视频可以设置宽高 -->
<!-- controls autoplay loop muted poster src -->
<!-- controls 代表进度条-->
<!-- autoplay 自动播放 -->
<!-- loop循环播放 -->
<!-- poster 封面 -->
<!-- src 连接到视频得地址 -->
<!-- width height 宽高 一般不一起设置 -->
<video controls loop muted poster="" src="3.mp4" width="400px"></video>
<button>播放</button>
<button>暂停</button>
<button>切换</button>
<button>音量+</button>
<button>音量-</button>
<button>快进</button>
<button>快退</button>
<button>倍速播放</button>
<!-- 不加进度条相当于背景音乐 -->
<!-- <audio src="./音视频/1.mp3" autoplay loop></audio> -->
<script>
$(function () {
// 获取到视频标签
var video = $('video')[0];
// 给这一类按钮绑定事件
$('button').click(function () {
// 播放视频
if ($(this).text() === '播放') {
video.play()
}
// 暂停视频
if ($(this).text() === '暂停') {
video.pause()
}
// 切换 视频是播放进行暂停 视频暂停进行播放
if ($(this).text() === '切换') {
// 当前视频是否是暂停状态
// video.paused为true代表暂停
if (video.paused) {
video.play()
} else {
video.pause()
}
}
// 控制音量+ -
if ($(this).text() === '音量+') {
// volume 0-1阈值
// video.volume+=0.1;
// console.log(video.volume);
video.volume = (video.volume > 0.9 ? 0.9 : video.volume) + 0.1
}
// 控制音量-
if ($(this).text() === '音量-') {
video.volume = (video.volume < 0.1 ? 0.1 : video.volume) - 0.1;
}
// 控制视频快进
if ($(this).text() === '快进') {
// 以秒为单位
video.currentTime += 10;
}
// 控制视频快退
if ($(this).text() === '快退') {
// 以秒为单位
video.currentTime -= 10;
}
// 倍数播放
if ($(this).text() === '倍速播放') {
// 取值 0-n
// >1快速播放
// <1 慢速播放
video.playbackRate = 0.5;
}
// 监听视频音量事件
video.onvolumechange = function () {
if (this.volume > 0.5) {
alert('不要继续放大了')
}
}
})
})
</script>
2.audio音频
audio元素与video类似,是用来播放音频的。其属性方法事件也几乎与video元素一致
<!-- 不加controls相当于背景音乐 -->
<audio src="./音视频/1.mp3" controls loop autoplay></audio>
3:画布
1.掌握canvas元素的基本概念,学会如何在页面上放置一个canvas元素,如何使用canvas元素绘制出一个简单矩形
2.掌握使用路径的方法,能够利用路径绘制出圆形与多边形
3.掌握渐变图形的绘制方法,学会图形变形,图形缩放,图形组合,以及给图形绘制阴影的方法
<!-- 画布元素-->
<canvas width="400px" height="400px"></canvas>
window.onload=function(){
// 80 前端工程师 网页 门户网站 app pc端
// 20 webgl工程师 three.js canvas 加上 3d建模 unity 3d
// 1.获取画布
var canvas=document.querySelector('canvas');
// 2.获取画笔 上下文对象
var context=canvas.getContext('2d');
// 3.给图形设置填充样式
// context.fillStyle='red';//实心填充
// 4.绘制图形 绘制填充矩形
// fillRect 参数 x轴起始位置 y轴起始位置 宽 高
// context.fillRect(0,0,200,200);
// 绘制轮廓矩形
// 3.给轮廓图形设置填充样式
context.strokeStyle='blue';
// 给轮廓矩形设置线宽
context.lineWidth=8;
// 4.绘制轮廓矩形 参数 x轴起始位置 y轴起始位置 宽 高
context.strokeRect(100,100,100,100);
// 清除画布一部分区域
context.clearRect(100,100,50,50);
// 清除画布全部区域
context.clearRect(0,0,400,400);
}
1.基本用法
(1)获取canvas对象--获取画布
通过document.getElementById()等方法取得canvas对象。
(2)取得上下文(context)--获取画笔
图形上下文是一个封装了很多绘图功能的对象,参数只能是“2d”
(3)定义填充样式
context.fillStyle='red';
(4)绘制填充图形
context.fillStyle(10,10,100,100)//第一个参数是x轴开始位置,第二个参数是y轴开始位置,第三个参数是绘制图形的宽,第四个位置是绘制图形的高
1.实例 --绘制填充矩形
//通过fillRect
window.onload=function(){
//1.获取画布
var canvas=document.querySelector('canvas');
// 2.获取画布上下文对象
var context=canvas.getContext('2d');
// 3.绘制填充样式
context.fillStyle='red'
// 4.绘制填充矩形
context.fillRect(10,10,100,100)
}
//绘制轮廓矩形 边框矩形
window.onload=function(){
//1.获取画布
var canvas=document.querySelector('canvas');
// 2.获取画布上下文对象
var context=canvas.getContext('2d');
// 设置轮廓样式
context.strokeStyle='red'
// 设置轮廓的线宽
context.lineWidth=4;
// 绘制边框矩形或者轮廓矩形
context.strokeRect(10,10,100,100);
// 清楚一部分区域
context.clearRect(0,0,50,50);
// 清楚全部区域
context.clearRect(0,0,400,400)
}
绘制圆
<canvas width="600px" height="600px"></canvas>
window.onload=function(){
// 1.获取画布
var canvas=document.querySelector('canvas');
// 2.获取上下文对象
var context=canvas.getContext('2d');
// 3.需要给开始路径
context.beginPath();
// 4.绘制圆
// arc参数:x y轴开始位置 r半径 开始弧度Math.PI(180°) 结束弧度 布尔值
// 改为true 代表逆时针绘制 默认是false
context.arc(100,100,100,0,Math.PI*2,true);
// 5.绘制圆得填充样式
context.fillStyle='blue';
// 6.绘制圆形
context.fill();
// 7.需要给结束路径
context.closePath();
}
圆的移动
window.onload=function(){
// 1.获取画布
var canvas=document.querySelector('canvas');
// 2.获取上下文对象
var context=canvas.getContext('2d');
var obj={
x:100,
y:100,
r:100,
color:'yellow'
};
// 声明绘制圆得方法
function draw(obj){
context.beginPath();
context.arc(obj.x,obj.y,obj.r,0,Math.PI*2);
// 绘制填充圆样式
// context.fillStyle=obj.color;
// 绘制轮廓圆
context.strokeStyle=obj.color;
// 绘制填充圆
// context.fill();
// 绘制轮廓圆
context.stroke();
context.closePath();
}
// 声明圆移动得方法
function move(obj){
obj.x+=5;
obj.y+=5;
draw(obj);
}
setInterval(function(){
// 清除原先圆
context.clearRect(0,0,600,600);
move(obj);
},500);
draw(obj);
}
渐变
window.onload=function(){
// 获取画布
var canvas=document.querySelector('canvas');
// 获取画笔
var context=canvas.getContext('2d');
// 3.绘制一个线性渐变图形
// 3.1创建一个线性渐变对象
// createLinearGradient参数 0 0 400 400
var l=context.createLinearGradient(0,0,400,400);
// 3.2给渐变图形填充颜色 addColorStop 参数 阈值0-1填充百分比 颜色
l.addColorStop(0,'red');
l.addColorStop(0.25,'blue');
l.addColorStop(0.5,'cyan');
l.addColorStop(0.75,'pink');
l.addColorStop(1,'yellow');
// 4.将渐变对象给到图形填充样式
context.fillStyle=l;
// 5.绘制填充图形
context.fillRect(0,0,400,400);
}
径向渐变
window.onload=function(){
// 获取画布
var canvas=document.querySelector('canvas');
// 获取画笔
var context=canvas.getContext('2d');
// 3.绘制一个径向渐变图形
// 3.1创建一个径向渐变对象
// createRadialGradient
// 参数:小圆x y r 大圆 x y r
var g=context.createRadialGradient(200,200,100,200,200,200);
// 3.2给渐变对象填充颜色 addColorStop 参数 阈值0-1填充百分比 颜色
g.addColorStop(0,'red');
g.addColorStop(0.25,'green');
g.addColorStop(0.5,'blue');
g.addColorStop(0.75,'cyan');
g.addColorStop(1,'pink');
// 4.将径向渐变对象给到图形填充样式
context.fillStyle=g;
// 5.绘制填充图形
context.fillRect(0,0,400,400);
}
绘制线段
window.onload=function(){
// 获取画布
var canvas=document.querySelector('canvas');
// 获取画笔
var context=canvas.getContext('2d');
context.lineWidth=8;
// 需要开始路径
context.beginPath();
// 绘制线段 从哪里开始 到哪里结束
context.moveTo(0,0);
context.lineTo(100,100);
context.lineTo(200,10);
context.lineTo(300,100);
// 需要结束路径
context.closePath();
// 给线段设置颜色
context.stokeStyle='cyan';
// 绘制线段
context.stoke();
}
绘制图像
window.onload=function(){
// 获取画布
var canvas=document.querySelector('canvas');
// 获取画笔
var context=canvas.getContext('2d');
// 创建一个img标签 构造函数方式new Image();
// var img=new Image();
// console.log(img);
// img.src='./音视频/2.jpg';
// // 绘制图片 参数 要绘制得图片/视频 开始x y 轴位置 宽高
// img.onload=function(){
// context.drawImage(img,0,0,100,100);
// }
// 绘制视频
// var video=document.querySelector('video');
// function draw(){
// context.drawImage(video,0,0,300,300);
// // 请求动画帧
// requestAnimationFrame(draw);
// }
// draw()
// 绘制文本
context.font='18px bold';
// 参数 要绘制得文本 x y 起始位置
// context.fillText('hello world',100,100);
context.strokeText('hello',100,100);
}
<canvas width="400px" height="400px"></canvas>
<video controls src="./音视频/1.mp4" width="300px"></video>