##1.video
1、简化版写法:兼容性差
```<video src="" controls> </video>```

2、视频标签标准语法(兼容处理)
```
`<video>
<source src="视频文件URL地址" />
<source src="视频文件URL地址" />
<source src="视频文件URL地址" />
浏览器不支持视频的提示文本
</video>`
//浏览器将使用第一个可识别的视频
```
3、视频标签属性

- width 宽度
- height 高度

以下取值为布尔值:

- controls 显示播放原生控件(兼容性极差)
- loop 循环播放
- autoplay 自动播放视屏(大多数浏览器禁用此功能)
- muted 静音播放
- poster 在视频播放之前显示广告,取值为广告的url(缺点:如果暂停视频不能显示广告图片)
- preload 视频的预加载方式默认auto(注意:设置该属性后,则视频在页面加载时进行加载,并预备播放。如果使用 " autoplay ",则忽略该属性)

4、使用DOM操作视频

HTMLVideoElement属性
```
//1. 获取视频对象
var vdo = document.getElmentById("video")
//2. 获取/设置对象的宽度/高度(如果本身没有设置 就是0)
vdo.width
vdo.height
//3. 获取视频对象的原始宽度、高度
vdo.videoWidth
vdo.videoHeight
//注意:如果要获取视频对象的原始宽度和高度必须在loadeddata事件完成后才能使用
vdo.addEventListener("loadeddata",()=>{
console.log(vde.videoWidth)
console.log(vde.videoHeight)
})
//loadeddata 事件表示已经加载完成视频的第一帧,当加载完视频的第一帧以后,视频的原始宽度和高度才能正常访问
//4. 获取视频海报帧
vdo.poster = 'myvideo.mp4'
```
HTMLMediaElement属性

```
<script>
//autoplay 是否自动播放
//muted 是否静音
//controls 是否显示播放控件
//loop 是否循环播放
//src 用于设置媒体文件的url地址
//volume 用于获取、设置媒体的音量(取值范围[0,1])
vdo.volume = 0.6
//playbackRate 获取、设置媒体的播放速率,1.0为正常速率
//paused 用于获取媒体对象是否在暂停,返回值为布尔值
//ended 用于获取媒体对象是否播放完毕
//currentTime 用于获取、设置媒体对象的当前播放时间(单位为秒)
//duration 用于获取媒体对象的总时长(单位s)

//方法play() 用于实现媒体的播放
vdo.play()
//方法pause() 用于实现媒体的暂停
veo.pause()

var play = document.getElementById("play")
play.onclick = ()=>{
//判断视频是否为暂停
if(vdo.paused==false){
vdo.pause();
}else{
vdo.play();
}
}

//事件
//媒体对象播放时触发
vdo.addEventListener("play",()=>{})
//媒体对象暂停时触发
vdo.addEventListener("pause",()=>{})
//媒体对象播放完毕后触发
vdo.addEventListener("ended",()=>{})
//媒体文件的第一帧加载完成后被触发
vdo.addEventListener("loadeddata",()=>{})
//媒体对象的currentTime属性发生变化时调用
vdo.addEventListener("timeupdata",()=>{})
//媒体对象加载结束时触发
vdo.addEventListener("canplaythrough",()=>{})

</script>
```

##2.audio
1、音频标签标准语法
```
<audio>
<source src="音频文件URL"/>
<source src="音频文件URL"/>
<source src="音频文件URL"/>
浏览器不支持音频的提示文本
</audio>
```
2、音频标签属性
```
<script>
//controls
//autoplay
//muted
//loop
//preload
//和视频是一样的
</script>
```
3、HTMLAudioElement
构造函数:var ado = new Audio([音频文件的URL地址])
==> 1. var ado=new Audio("./myaudio.mp3");2.ado.controls=true;3.document.body.appendChild(ado)

4.HTMLMediaElement

## 3. 全屏模式(兼容性讨厌)
1、全屏模式兼容写法
```
<script>
//进入全屏模式兼容写法
function requestFullScreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}
//启动全屏:
//整个页面:
requestFullScreen(document.documentElement);
//某个页面元素
requestFullScreen(document.getElementById("vdo"));

//退出全屏模式兼容性写法
function exitFullScreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if(document.msExitFullscreen){
document.msExitFullscreen();
}
}
//退出
//exitFullscreen();
p1.onclick = ()=>{exitFullscreen()}
</script>
```
2、全屏属性和事件
```
<script>
//判断当前浏览器是否允许设置全屏状态
document.fullScreenEnabled
//获取全屏显示的网页元素
document.fullscreenElement
//启动全屏或退出全屏时触发
fullscreenchange//有兼容性
//启动全屏或退出全屏失败时触发
fullscreenerror//有兼容性
</script>
```
## 4.canvas
1、通过标签创建画布
```<canvas id="canvas" height:"800"; width:"800"></canvas>```
2、通过js程序获取画布画笔
```
<script>
var cvs = document.getElementById("canvas")
var ctx = cvs.getContext(2D)
</script>
```

3、CanvasRenderingContext2D对象

1.绘制图形
```
<script>
//1. 绘制空心矩形(描边矩形)
ctx.strokeRect(x,y,width,height)
//2. 绘制实心矩形(填充矩形)
ctx.fillRect(x,y,width,height)

//所有画笔样式要在绘制之前写才会生效!!!!!!!!!

//3. 获取/设置描边矩形颜色
//获取:
ctx.strokeStyle
//设置:
ctx.strokeStyle="#f00"
//4. 获取/设置填充矩形颜色
//获取:
ctx.fillStyle
//设置:
ctx.fillStyle="#f00"
//5. 获取/设置画笔透明度
//获取:
ctx.globalAlpha
//设置:(取值0-1)
ctx.globalAlpha=0.4
</script>
```

2.绘制文本
```
<script>
//1. 绘制描边文本
ctx.strokeText(text,x,y)
//2. 绘制填充(实体)文本
ctx.fillText(text,x,y)
//3. 获取/设置文本样式
//设置:
ctx.font="字号 字体";
//获取:
ctx.font
//4. 获取/设置文本的水平对齐方式
//设置:
ctx.textAlign="center";
//获取:
ctx.textAlign
//5. 获取/设置文本的垂直对齐方式(基线位置)
//设置:
ctx.textBaseline="top"
//alphabetic 默认,文本基线是普通的字母基线
//top 文本基线是em方框的顶端
//middle 文本基线是em方框的正中
//ideographic 文本基线是表意基线
//bottom 文本基线是em方框的底部
//hanging 文本基线是悬挂基线
//获取:
ctx.textBaseline

//返回包含指定文本宽度的对象
ctx.measureText(text).width;
//text:要测量的文本
</script>
```

3.清空矩形范围内所有元素
```
<script>
ctx.clearRect(x,y,width,height)
//一般都是清除整个画布,重绘画布
</script>
```

4.路径
```
<script>
//绘制路径写起点和终点
ctx.moveTO(x,y)
ctx.lineTo(x,y)
ctx.stroke()//绘制已定义路径
ctx.strokeStyle="color" 绘制路径颜色
ctx.fill()//填充已有路径
ctx.fillStyle="color" //填充颜色
</script>
```

HTML5新增语法的更多相关文章

  1. 浅谈html语义化标签,Html5新增语义化标签

    Html语义化标签,Html5新增语义化标签 自己在学习的期间,整理了下html关于语义化标签的一些知识,列的不是很全. 希望大家有新的见解可以给我留言,我会补充上去,谢谢大家 1.什么是语义化标签? ...

  2. web前端学习(二)html学习笔记部分(1) -- html5新增的元素及特性等等

    检查,在浏览器中可以调整设备类型 html5实现水池效果. lang:en为英文语言,中文语言zh <html lang="en"> <head> < ...

  3. HTML5 学习总结(二)——HTML5新增属性与表单元素

    一.HTML5新增属性 1.1.contextmenu contextmenu的作用是指定右键菜单. <!DOCTYPE html> <html> <head> & ...

  4. HTML5新增及移除的元素

    HTML经过10多年的发展,其元素经历了废弃与不断重新定义的过程.为了更好的处理现在的互联网应用,HTML5新增了图形绘制.多媒体播放.页面结构.应用程序存储.网络工作等新元素.http://hove ...

  5. HTML5 学习笔记(二)——HTML5新增属性与表单元素

    目录 一.HTML5新增属性 1.1.contextmenu 1.2.contentEditable 1.3.hidden 1.4.draggable 1.5.data-* 1.6.placehold ...

  6. 过段时间逐步使用HTML5新增的web worker等内容

    想来快2017年了,2013年前的手机应该很少有人用了,以后逐渐使用HTML5新增的高级API吧. 先把web worker的内容再熟悉一下,因为微软虚拟学院的'面向有经验开发人员的 JavaScri ...

  7. HTML5新增标签与属性

    目录 一.HTML5新增属性 1.1.contextmenu 1.2.contentEditable 1.3.hidden 1.4.draggable 1.5.data-* 1.6.placehold ...

  8. 【原】HTML5 新增的结构元素——能用并不代表对了

    做移动端有一段时间,今天有同事问了我 article 和 section 标签的使用,模模糊糊的解释了下,他似懂非懂,有点小尴尬.忽然间觉得自己有必要再翻翻书籍,重温下 html5 的新元素.html ...

  9. HTML5新增的属性

    关于html5新增的属性: HTML5现在已经不是SGML的子集,主要是增加了关于图像,位置,存储,多任务等功能. 绘画CANVAS; 用于播放媒体的video和audio元素: 本地离线存储loca ...

随机推荐

  1. 1月加密货币交易所访问量破3亿!NGK生态星空计划、NGK生态所带来双重利好!

    据最新数据显示,2021年一月份,加密货币交易所网站的访问量急剧上升.约有3.44亿访问者涌入了加密货币交易所,超过2020年12月的1.96亿访问者总数,创2018年1月以来新高. 加密货币交易所网 ...

  2. django学习-19.admin管理后台的配置和登录

    目录结构 1.前言 2.admin管理后台的配置和登录的完整操作流程 2.1.第一步: 在[settings.py]里对常量[INSTALLED_APPS]的值进行相关配置 2.2.第二步: 在[ur ...

  3. java放射机制的学习心得

    概述 之前在了解Spring的类加载机制的时候,了解了java的反射机制.但是,我对反射理解一直不深.也一直有点疑惑:Spring为什么利用反射创建对象?直接new对象和依靠反射创建对象有什么区别?什 ...

  4. 【Android初级】如何实现一个有动画效果的自定义下拉菜单

    我们在购物APP里面设置收货地址时,都会有让我们选择省份及城市的下拉菜单项.今天我将使用Android原生的 Spinner 控件来实现一个自定义的下拉菜单功能,并配上一个透明渐变动画效果. 要实现的 ...

  5. 02.描述统计 (descriptive statistics)

    1.数据的可靠性和有效性 2.利用图表对数据进行可视化 2.1分类变量的可视化 2.11无序分类变量 2.12有序分类变量的可视化 2.1数值变量的可视化 数据的分布

  6. 4. Vue基本指令

    目录 1. v-on指令 2. v-if指令 3. v-show指令 4. v-for指令 5. v-model指令 一. v-on指令 1. 基础用法 v-on是事件监听的指令, 下面来看简单用法 ...

  7. 开源OA办公平台搭建教程:O2OA+Arduino实现物联网应用(二)

    O2OA平台搭建 O2OA的开发环境非常简单,安装服务器后即可通过浏览器进行开发了和使用.具体可参考文档库中的其他文档,有比较详细的介绍,这里就不再赘述了. Arduino开发发环境搭建 安装Ardu ...

  8. Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习

    一  使用环境: windows 7 64位操作系统 二  IDE:VSCode/PyCharm 三  Vue.js官网: https://cn.vuejs.org/ 四  下载安装引用 方式1:直接 ...

  9. wxWidgets源码分析(3) - 消息映射表

    目录 消息映射表 静态消息映射表 静态消息映射表处理过程 动态消息映射表 动态消息映射表处理过程 消息映射表 消息是GUI程序的核心,所有的操作行为均通过消息传递. 静态消息映射表 使用静态Event ...

  10. CentOS Install NMP

    目录 Installation steps of the Nginx install run 默认安装路径 指定安装目录 Installation steps of the MySQL 下载源码包 解 ...