h5新增标签属性以及api

简介:

  • H5是最新的HTML标准
  • H5是专门为承载丰富的web内容而设计的,并且无需额外的插件
  • H5拥有新的语义、图形、及多媒体元素
  • H5提供新的元素和新的api,简化了web应用程序的搭建
  • H5是跨平台的,被设计为在不同类型的硬件上运行

一、新增语义化标签

  • head头部标签
  • nav导航标签
  • main主体标签
  • article独立的内容标签
  • section区段标签
  • aside侧边栏标签
  • footer尾部标签
注意:语义化标准主要针对搜索引擎。这些新标签页面中可以使用多次。在IE9中需要把这些元素转化为块级元素。移动端更喜欢使用这些标签。

二、多媒体标签

audio音频标签。在不使用插件的情况下也可以原生的支持音频格式文件的播放。
  • autoplay音频就绪后马上播放。Chrome浏览器会组织自动播放
  • controls向用户显示控件,比如播放按钮。
  • loop音频结束时重新开始播放。
  • preload音频在页面加载时进行加载,并预备播放。使用autolay则忽略该属性。
  • src:url要播放音频的地址。
例:
h5中属性名和属性值相同,可以只写属性名
<audio src=""  control  autoplay  loop preload ></audio>
<!-- 兼容性写法 -->
<audio controls>
	<sourcs  src="" typ=" audio/mpeg"></source>
	<sourcs  src="" typ=" audio/ogg"></source>
	你的浏览器版本过低,不支持视频播放
</audio>
video视频标签。在不使用插件的情况下也可以原生的支持视频格式文件的播放
  • autoplay视频就绪自动播放。Chrome浏览器需要添加muted来解决自动播放的问题。
  • controls向用户显示控件,比如播放按钮
  • loop视频结束时重新开始播放,循环播放。
  • preload:auto/none规定是否预先加载视频。使用autplay则忽略该属性
  • src:url要播放视频的地址
  • width:像素。设置播放器的宽度
  • height:像素,设置播放器的高度
  • poster路径,加载等待的画面图片
  • muted 静音播放
<video  src=""  controls   sutoplay  loop  preload="suto"  widh="200px"  height="200px"  poster=""   muted></video>
<!-- 兼容性写法 -->
    <video controls width="200px">
        <source src="" type="video/mp4">
        <source src="" type="video/ogg">
        你的浏览器版本过低,不支持视频播放
    </video>

三、新增表单标签

 - type="email" 限制用户输入必须为Email类型
 - type="url" 限制用户输入必须为URL类型
 - type="data" 限制用户输入必须为日期类型
 - type="time" 限制用户输入必须为时间类型
 - type="month" 限制用户输入必须为月类型
 - type="week" 限制用户输入必须为周类型
 - type="number" 限制用户输入必须为数字类型。max="100" min="0" step="4" value="4"。
 - type="range" 滑动条
 - type="tel" 手机号码
 - type="search" 搜索框
 - type="color" 生成一个颜色选择表单
datalist标签

规定了input元素可能的选项例表。
包含一组option元素,这些元素可以预定义可选值,在input元素输入过程中,会自定响应option元素的值。
绑定的input标签必须设置list属性,属性值等于datalist标签的id属性

<input   type=’text‘  list="list">
	<datalist  id="list">
		<option  value="上海">shanghai</option>
	</datalist>

四、新增表单属性

  • required:"required"设置该属性的表单元素不能为空。
  • placehoder:"提示文本"提示信息
  • autofocus:“自动聚焦”,一般一个页面中放一个。
  • autocomplete:“off/on”,之前填写并提交过的内容,设置on后再次填写浏览器会去识别。需要在同一个团苏中添加name属性。
  • multiple:"multiple"可以多选文件提交

五、全屏显示

H5一般是做移动端
H5规范规定页面中的任何元素都能全屏显示
  • 元素.RequestFullScreen()开启全屏显示
  • document.CancelFullScreen()关闭全屏显示
  • document.IsFullScreen()判断当前是否全屏状态下
  • 全屏伪类div:-webkit-full-screen,一旦元素全屏就会触发伪类选择器
  • 由于全屏显示功能在各个浏览器的兼容性不同。所以不同的浏览器中需要加不同的兼容前缀
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>全屏显示</title>
   <style>
       *{
           margin: 0;
           padding:0;
       }
       #box{
       width: 200px;
       height: 200px;
       background-color: pink;
   }
       #div{
           width: 100%;
           height: 800px;
           background-color: red;
       }
       /*全屏伪类选择器 一旦元素全屏就会触发伪类选择器*/
       /*选择到全屏下的box  全屏状态激活这个选择器 这个伪类选择器也要加兼容前缀*/
       #box:-webkit-full-screen{
           background-color: blue;
       }
   </style>
</head>
<body>
   <div id="box">
       <div id="div"></div>
       <button id="full">全屏显示</button>
       <button id="cancel">退出全屏</button>
       <button id="isfull">是否全屏</button>
   </div>
   <script>
       //获取显示元素
       var oBox = document.getElementById('box');
       //获取要点击功能的按钮
       var full = document.getElementById('full');
       var cancel = document.getElementById('cancel');
       var isfull = document.getElementById('isfull');

       //点击按钮让box全屏显示
       full.onclick = function(){
           /*
             元素.requestFullscreen()表示请求这个元素全屏显示
       	  requestFullScreen() 这个方法各个浏览器都有自己的方法来实现 
             所以让要让元素全屏显示  必须加上不同的浏览器的兼容前缀
             谷歌浏览器的兼容写法加上webkit兼容前缀,需要写驼峰写法才能符合代码规范
           */

           // 检测当前浏览器是什么浏览器,有能力执行对应的全屏的方法(检测这个方法有没有在对应浏览器上面的方法) 
           // 这种方式叫做浏览器的能力检测
           
           //兼容不同的浏览器,让所用浏览器都可以全屏显示
           if (oBox.webkitRequestFullScreen) {//谷歌浏览器
               oBox.webkitRequestFullScreen()
           } else if (oBox.mozRequestFullScreen) {//火狐浏览器
               oBox.mozRequestFullScreen()
           } else if (oBox.oRequestFullScreen) {//欧朋浏览器
               oBox.oRequestFullScreen()
           } else {//IE浏览器
               oBox.msRequestFullScreen()
           }
       }

       //退出全屏显示有两种方式
       //1.在全屏中退出全屏按键盘上的Esc键即可
       //2.document.cancelFullScreen()这个方法可以取消全屏显示

       //点击按钮让box退出全屏
       cancel.onclick = function(){
           // cancelFullScreen 这个方法可以取消全屏显示, 这个方法只能是document这个对象调用
           //不是让元素退出全屏 而是让docuemnt退出全屏

           //兼容所有浏览器退出全屏显示
           if (document.webkitCancelFullScreen) {//谷歌浏览器
               document.webkitCancelFullScreen();
           } else if (document.mozCancelFullScreen) {//火狐浏览器
               document.mozCancelFullScreen();
           } else if (document.oCancelFullScreen) {//欧朋浏览器
               document.oCancelFullScreen();
           } else {//IE浏览器
               document.msCancelFullScreen();
           }
       }

       isfull.onclick = function(){
            // isFullScreen 这个方法可以判断是否在全屏状态下, 这个属性只能是document这个对象调用

            //判断当前是否全屏状态下
            alert(document.webkitIsFullScreen);
       }
       /*
        requestFullscreen()让元素全屏显示的兼容前缀
        cancelFullScreen()让元素退出全屏显示兼容前缀
        isFullScreen判断元素是否全屏显示
        各大浏览器兼容前缀
        谷歌浏览器  webkit
        火狐浏览器  moz
        欧朋        o
        IE         ms
       */
   </script>
</body>
</html>
六、网络检测

HTML5提供两个事件来检测网络状态,两个事件检测的都是window对象

  • online 网络连接时
  • offline 网络断开时
七、读取文件

h5提供了FileReader这个构造函数让我们读取本地的文件

reader.readAsText(文本文件)	//读取文本文件
reader.readAsDataURL(图片文件)	 //读取图片文件
reader.onload = function(){		//等读取好数据之后    打印读取好的数据	 
      console.log(this.result) //获取文件的数据
}
八、H5拖拽
h5拖拽由两个部分组成 拖拽元素 + 目标元素
拖拽元素的事件
  • ondragstart 鼠标按下拖拽元素时触发 常用 一般在这个事件中存储数据
  • ondrag 在拖拽元素的过程中持续触发
  • ondragend鼠标抬起拖拽元素时触发

dragstart 当鼠标在拖拽元素上按下时 触发

//当你一开始拖拽元素就会触发这个事件(鼠标按下)
oRight.ondragstart = function(){
    //一旦拖拽这个元素就触发ondragstart事件
    console.log('ondragstart事件')
};

drag 持续触发 当鼠标在拖拽元素上时触发 不论鼠标有没有运动

oRight.ondrag = function(){
    console.log('ondrag事件');
    //在拖拽元素之上(拖拽元素的虚影)就会触发ondrag事件
};

dragend 当鼠标在拖拽元素上抬起时 触发

oRight.ondragend = function(){
    console.log('ondragend事件');
    //当鼠标在拖拽元素抬起时触发这个事件
};//end(结束)
目标元素的事件
  • ondragenter 当鼠标进入目标元素内部触发
  • ondragleave 当鼠标离开目标元素内部时触发
  • ondragover 当鼠标在目标元素上部移动时持续触发 常用
  • ondrop 当鼠标在目标元素抬起时触发 常用
    浏览器的默认行为会阻止该事件,只要在dragover阻止这个默认行为 浏览器就能检测drop事件

ondragenter 当鼠标进入到拖拽区域时触发

oLeft.ondragenter = function(){
    console.log('ondragenter事件');
    //鼠标进入目标元素里面触发dragenter事件
};

ondragleave 当鼠标离开到拖拽区域时触发

oLeft.ondragleave = function(e){
    console.log('ondragleave事件');
    //鼠标离开目标元素就会触发这个事件
};

ondragover 常用 当鼠标在拖拽区域时持续触发 不论鼠标有没有运动 (常用于清除浏览器默认事件,激活drop事件)

oLeft.ondragover = function(e){
    console.log('ondragover事件');//当鼠标在目标区域上面时触发ondragover事件
 
    //这样写很保险的阻止掉了默认行为
    e.preventDefault();//阻止默认行为(必写)
    e.stopPropagation();//阻止事件冒泡
    return false;
};

ondrop 常用 当鼠标在目标区域抬起时触发 需要在dragover事件中阻止默认行为 默认情况下 浏览器会阻止这个事件的触发

oLeft.ondrop = function(){
    //默认是浏览器无法感知ondrop这个事件的(这种情况是浏览器的默认行为)我们需要在dragover事件中阻止默认行为
    console.log('ondrop事件');
};
九、Web存储
cookie、sessionStorage、localStrorage区别
  • cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器之间来回传递
  • cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下,存储大小限制也不同,cookie数据不能超过4k,同事因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。cookie只有设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
  • sesionStorage和loaclStorage不会自动把数据发给服务器,仅保存在本地。虽然也有存储大小的限制,但比cookie大的多,可以达到5M或更大。
  • 数据有效期不同: sesionStorage,仅在当前浏览器窗口关闭前有效,自然不可能保持持久;作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使时同一个页面;localStorage在所有的同源创就也是共享的,cookie也是在所有的同源窗口中都是共享的。loaclStorage,始终有效,窗口或者浏览器关闭也一直保存,因此用作持久数据.
差异性

相同点:都是存储数据,存储在web端,并且都是同源

不同点
  • cookie只有4k,并且每一次请求都会带上cookie,体验不好,浪费带宽
  • sessionStorage和localStorage直接存储在本地,请求不携带,并且容量比cookie要大的多
  • sessionStorage是临时会话,当窗口被关闭的时候九清除掉,而localStorage永久存在,除非手动清除,cookie有过期时间
  • cookie和loaclStorage都可以支持多窗口共享,而sessionStorage不支持多窗口共享,但是都支持a链接跳转的新窗口
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值