H5API

H5API

HTML5新特性
? 标签:nav article footer header aside.....
? 表单新特性:input type取值date time week email number
? 表单属性 form formaction(提交地址) frommethod(提交方式) required readonly disabled
? 表单控件标签:progress meter datalist
1.H5API (HTML5中的js部分)
在HTML5问世之前,要在网络上展示视频,音频,动画,除了使用第三方自主开发的播放器之外,使用得最多的工具就是Flash,但是需要在浏览器上安装各种插件,并且有时速度很慢。HTML5新增了两个与媒体相关的标签,让开发人员不必依赖任何插件就能在网页中嵌入跨浏览器的音频和视频内容,这两个标签是
1.1自定义数据属性
data-id 是一类被称为自定义数据属性的属性,它赋予我们在所有HTML元素上嵌入自定义数据属性的能力宁可以通过HTML和DOM进行专有数据的交换。所有的属性都可以通过HTMLElement.prototype.dataset来访问.自定义属性都可以保存到dataset中。 获取属性 ?document.getAttribute ?$(dom).attr() ?dom.dataset


1.2媒体元素
1.video
在video标签出现之前,如果想在网页中播放视频或者音频数据是非常困难的。H5中的video标签可以向使用img显示图片一样简单去播放视频。
video提供了很多属性和方法,我们可以通过直接设定或者通过js控制视频的显示
读写属性 src autoplay poster loop constrols width height 宽高一般不一起使用
? constrols是控制条 loop是循环播放 autoplay是自动播放poster='' 封面 放封面地址 muted静音
方法 play播放 pause暂停 paused切换,是否是暂停状态 volume控制音量 currentTime当前播放秒数 playbackRate倍数播放
1.属性 1.进度条controls 2.页面一加载是否自动播放autoplay 3.post封面 4.是否循环播放loop 5.muted静音

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('继续调高声音会损伤耳膜') } }

2.audio音频
【H5API】audio元素与video类似,是用来播放音频的。其属性方法事件也几乎与video元素一致.

2.画布
1.掌握canvas元素的基本概念,学会如何在页面上放置一个canvas元素,如何使用canvas元素绘制出一个简单矩形
2.掌握使用路径的方法,能够利用路径绘制出圆形与多边形
3.掌握渐变图形的绘制方法,学会图形变形,图形缩放,图形组合,以及给图形绘制阴影的方法
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) }

2.实例 --绘制圆 window.onload=function(){ // 获取画布 var canvas=document.querySelector('canvas'); // 获取画布上下文对象 var context=canvas.getContext('2d'); // 绘制圆直线曲线需要路径 开始路径 context.beginPath(); // 圆的路径 x y r 开始弧度 结束弧度 圆的方向是否是逆时针路径 // Math.PI --180度 context.arc(100,100,50,0,Math.PI,true); // context.arc(100,100,50,0,Math.PI/2); // 直线路径 context.lineTo(100,100); context.lineTo(150,100); context.arc(300,300,50,0,Math.PI*2); // 结束路径 // context.closePath(); // 填充样式 context.fillStyle='red' // 绘制填充圆 context.fill(); // 绘制轮廓 // context.stroke(); }

3.实例 圆的移动 window.onload=function(){ // 获取画布 var canvas=document.querySelector('canvas'); // 获取画布上下文对象 var context=canvas.getContext('2d'); var bubble={ x:100, y:100, r:50, color:'red' }; draw(bubble); move(bubble) setInterval(function(){ // 清除画布 context.clearRect(0,0,600,600); move(bubble) },200) // 绘制方法 function draw(bubble){ context.beginPath(); context.arc(bubble.x,bubble.y,bubble.r,0,Math.PI*2); context.fillStyle=bubble.color; context.fill() } // 移动 function move(bubble){ bubble.x+=5; bubble.y+=5; draw(bubble); }}

    推荐阅读