HTML 5

新增的标签

  • 多媒体标签

    • audio

      • src,url 要播放的URL
      • autoplay 自动播放
      • preload 在页面加载时进行加载,并预备播放

      如果使用 "autoplay",则忽略该属性
      - loop 循环播放
      - controls 向用户显示控件,比如播放按钮
      - video
      - src,url
      - autoplay
      - preload
      - loop
      - controls
      - width height 设置视频播放器的宽度高度
      > 一般只设置宽度或者高度
      - poster 指定视频还没有完全下载完毕,或者用户没有点击播放前显示的封面,默认显示当前视频文件的第一副图像

      因为不同的浏览器所支持的视频格式不一样,为了保证用户能够看到视频,我们可以提供多个视频文件让浏览器自动选择
      html <video controls> <source src="mp3/flv.flv" type="video/flv"> <source src="mp3/mp4.mp4" type="video/mp4"> </video>

  • fieldset 带标题的框

用法:form fieldset legend(为fieldset元素定义标题)

  • progress 进度条, meter 度量器 用于标示级别
    • high:number 定义度量的值位于哪个点,被界定为高的值
    • low:number 定义度量的值位于哪个点,被界定为低的值
    • max:number 定义最大值,默认值是 1
    • min:number 定义最小值,默认值是 0
    • optimum:number 定义什么样的度量值是最佳的值
    • value:number 定义度量的值
  • datalist 下拉列表(不常用)
  • keygen (不常用)
  • output 用于展示内容,只能展示,不能进行编辑(不常用)

新增的表单属性:

  • placeholder 占位符
  • required 验证条件,必填项
  • pattern 正则表达式,验证表单
  • autofocus 获取焦点
  • autocomplete 自动完成

on:打开,off:关闭,
必须成功提交过,且添加autocomplete的元素必须有name属性

  • multiple 文件上传多选或多个邮箱地址
  • novalidate 关闭验证,可用于form标签
  • form 指定表单项属于哪个form

处理复杂表单时会需要,当某个表单元素并没有包含在form中时,可在属性中用form属性指定表单id

新增的表单输入类型

  • search: 搜索框
  • email : 提供了默认的电子邮箱的完整验证
  • tel: 能够在移动端打开数字键盘
  • number: 只能输入数字(value=""max=""min="")
  • url: 只能输入url格式(必须包含http://)
  • file
  • time:时间
  • date:日期
  • range: 范围,可以进行拖动(value=""max=""min="")
  • color:拾色器,可通过value进行取值
  • datetime: 时间日期(不常用)
  • month: 月份
  • week: 星期

新增的表单事件:

  • oninput 用户输入内容时触发,可用于移动端输入字数统计
  • oninvalid 验证不通过时触发

DOM扩展

  1. 获取元素:
    • document.querySelector('selector')

    获取单个元素,如果获取的元素不止一个,那么只会返回满足条件的第一个元素。如果是类选择器,必须添加.,如果是id选择器,必须添加# ,否则当成标签处理
    - document.querySelectorAll('selector')
    > 获取满足条件的所有元素,以类数组形式存在

  2. 类名操作:
    • classList.add('class')
    • classList.remove('class')
    • classList.toggle('class')
    • classList.contains('class') 检测是否存在指定class
    • classList.item(n) 获取样式
  3. 自定义属性
<p data-school-name="itcast"></p>
var value=p.dataset["schoolName"];

网络接口

  • ononline:网络连通的时候触发这个事件
  • onoffline:网络断开时触发
window.addEventListener("online",function(){
    alert("网络连通了");
});
window.addEventListener("offline",function(){
    alert("网络断开了");
})

全屏接口

  • requestFullScreen():开启全屏显示
  • cancelFullScreen():退出全屏显示
  • fullScreenElement:是否是全屏状态
  1. 不同浏览器需要添加不同的前缀chrome:webkit firefox:moz ie:ms opera:o
  2. document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement 注意此时的拼写
window.onload=function(){
    var div=document.querySelector("div");
    /*全屏操作*/
    document.querySelector("#full").onclick=function(){
        if(div.requestFullScreen){
            div.requestFullScreen();
        }
        else if(div.webkitRequestFullScreen){
            div.webkitRequestFullScreen();
        }
        else if(div.mozRequestFullScreen){
            div.mozRequestFullScreen();
        }
        else if(div.msRequestFullScreen){
            div.msRequestFullScreen();
        }
    }
    /*退出全屏*/
    document.querySelector("#cancelFull").onclick=function(){
        if(document.cancelFullScreen){
            document.cancelFullScreen();
        }
        else if(document.webkitCancelFullScreen){
            document.webkitCancelFullScreen();
        }
        else if(document.mozCancelFullScreen){
            document.mozCancelFullScreen();
        }
        else if(document.msCancelFullScreen){
            document.msCancelFullScreen();
        }
    }
    /*判断是否是全屏状态*/
    document.querySelector("#isFull").onclick=function(){
        if(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement){
            alert(true);
        }
        else{
            alert(false);
        }
    }
}

FileReader 读取文件内容

- .readAsText():读取文本文件,返回文本字符串,默认编码是UTF-8
- .readAsBinaryString():读取任意类型的文件,返回二进制字符串
这个方法不是用来读取文件展示给用户看,而是存储文件
例如:读取文件的内容,获取二进制数据,传递给后台,后台接收了数据之后,再将数据存储
- .readAsDataURL():
读取文件,获取一段以data开头的字符串,
这段字符串的本质就是DataURL,
DataURL是一种将文件嵌入到文档的方案,
(一般就是指图像或者能够嵌入到文档的文件格式)DataURL是将资源转换为base64编码的字符串形式,
并且将这些内容直接存储在url中,优化网站的加载速度和执行效率

FileReader提供一个完整的事件模型,用来捕获读取文件时的状态

- onabort:读取文件中断片时触发
- onerror:读取错误时触发
- onload:文件读取成功完成时触发
- onloadend:读取完成时触发,无论成功还是失败
- onloadstart:开始读取时触发
- onprogress:读取文件过程中持续触发
- abort():中断读取
<form action="">
    文件: <input type="file" name="myFile" id="myFile" onchange="getFileContent();"> <br>
    <input type="submit">
</form>
<img src="" alt="">
var div = document.querySelector("div");
function getFileContent() {
    var file = document.querySelector("#myFile").files[0];
    //文件存储在file表单元素的files属性中,它是一个数组
    var reader = new FileReader();
    //创建文件读取对象
    reader.readAsDataURL(file);
    //读取文件,获取DataURL
    //需要传递一个参数 binary large object:文件(图片或者其它可以嵌入到文档的类型)
    //读取完文件之后,它会将读取的结果存储在文件读取对象的result中,void说明没有任何的返回值
    reader.onload = function () {
        document.querySelector("img").src = reader.result;
    }
}

拖拽接口

  • 应用于拖拽元素:
    • ondragstart 拖拽开始时调用
    • ondragleave 鼠标离开拖拽元素时调用
    • ondrag 整个拖拽过程都会调用--持续
    • ondragend 拖拽结束时调用
  • 应用于目标元素:
    • ondragenter 当拖拽元素进入时调用
    • ondragleave 当鼠标离开目标元素时调用
    • ondragover 当停留在目标元素上时调用
    • ondrop 当在目标元素上松开鼠标时调用

注: 在h5中,如果想拖拽元素,就必须为元素添加标签属性draggable="true",图片和超链接默认就可以拖拽

dataTransfer

  1. 通过dataTransfer来实现数据的存储
    e.dataTransfer.setData(format,data);
    format:数据的类型:text/html text/uri-list
    Data:数据:一般来说是字符串值
    e.dataTransfer.setData("text/html", e.target.id);
  2. 通过e.dataTransfer.setData存储的数据,只能在drop事件中获取
    e.dataTransfer.getData(format,data);
    var id = e.dataTransfer.getData("text/html");
    e.target.appendChild(document.getElementById(id));
document.ondragstart = function (e) {
    e.target.style.opacity = 0.5;
    e.dataTransfer.setData("text/html", e.target.id);
}
document.ondragend = function (e) {
    e.target.style.opacity = 1;
}
document.ondragover = function (e) {
    e.preventDefault();
    //浏览器默认会阻止ondrop事件,我们必须在ondragover中阻止浏览器的默认行为
}
document.ondrop = function (e) {
    var id = e.dataTransfer.getData("text/html");
    e.target.appendChild(document.getElementById(id));
}

地理位置接口 (不常用)

var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(success, error, option)
    } else {
        x.innerHTML = "Geolocation is not supported by this browser."
    }
}
function success(position) { //注意position
    x.innerHTML = position.coords.latitude + position.coords.longitude;
}
function error(error) {
    switch (error.code) {
        case error.PERMISSION_DENIED:
            x.innerHTML = "User denied the request for Geolocation."
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML = "Location information is unavailable."
            break;
        case error.TIMEOUT:
            x.innerHTML = "The request to get user location timed out."
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML = "An unknown error occurred."
            break;
    }
}
getLocation();

注意:
1. navigator.geolocation.getCurrentPosition(showPosition,showError,{});
或navigator.geolocation.getCurrentPosition(success,error,option);
navigator.watchPosition(successCallback, errorCallback, options)
2.option:可以设置获取数据的方式
- enableHighAccuracy:true/false:是否使用高精度
- timeout:设置超时时间,单位ms
- maximumAge:可以设置浏览器重新获取地理信息的时间间隔,单位是ms
3.
- position.coords.latitude 纬度
- position.coords.longitude 经度
- position.coords.accuracy 精度
- position.coords.altitude 海拔高度

sessionStorage,localStorage

  • window.sessionStorage
  1. 存储容量5mb左右
  2. 本质是存储在当前页面的内存中,其它页面和浏览器无法获取数据
  3. 生命周期为关闭当前页面,关闭页面,数据会自动清除
  • window.localStorage
  1. 存储容量20mb左右
  2. 不同浏览器不能共享数据,但是在同一个浏览器的不同窗口中可以共享数据
  3. 永久生效,它的数据是存储在硬盘上,并不会随着页面或者浏览器的关闭而清除.如果想清除,必须手动清除
  • .setItem(key,value):设置数据,以键值对的方式存储
  • .getItem(key):通过指定的键获取对应的值内容
  • .removeItem(key):删除指定的键及对应的值内容
  • .clear():清空所有存储内容

应用缓存

<html lang="en" manifest="demo.appcache">
CACHE MANIFEST
#上面一句代码必须是当前文档的第一句
#后面写注释

#需要缓存的文件清单列表
CACHE:
#下面就是需要缓存的清单列表
../images/l1.jpg
../images/l2.jpg
# *:代表所有文件

#配置每一次都需要重新从服务器获取的文件清单列表
NETWORK:
../images/l3.jpg

#配置如果文件无法获取则使用指定的文件进行替代
FALLBACK:
../images/l4.jpg ../images/banner_1.jpg
# /:代表所有文件
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容