HTML5新特性

HTML5新特性
(1) 语义化标签
  1. <section>表示区块

  2. <article>表示文章

  3. <header>表示页眉

  4. <footer>表示页脚

  5. <nav>表示导航

  6. <aside>表示侧边栏

  7. <figure>表示媒介内容分组

  8. <mark>表示标记

  9. <progress>表示进度

  10. <time>表示日期

(2) 新语义标签的兼容性处理

​ IE及以下版本的浏览器不支持H5和CSS3.解决办法: 引入htmlshiv.js文件,引入是,需要做if判断.

<!--  条件注释 只有ie能够识别-->
<!--[if lte ie 8]>
  <script src="html5shiv.min.js"></script>
<![endif]-->
(3) H5中新增的表单类型
  1. email 只能输入email格式
  2. tel 手机号码
  3. url只能输入url格式
  4. number 只能输入数字
  5. search 搜索框
  6. range 滑动条
  7. color 拾色器
  8. time 时间
  9. date 日期
  10. datetime 时间日期
  11. month 月份
  12. week 星期
(4) web本地缓存

浏览器存储数据: cookie, sessionStorage, localStorage

三者不同点:

  1. 存储大小: cookie数据不超过4kb,localStorage和sessionStorage是5M
  2. 数据有效期:
    • cookie在设置(服务器设置)的有效期内有效
    • localStorage一直有效,除非主动删除数据,否则不会过期
    • sessionStorage仅在当前浏览器窗口关闭前有效,关闭即销毁
// 存储数据
localStorage.setItem('username','张三');
// 获取数据
localStorage.getItem('username');
// 清除数据
localStorage.removeItem('username');
// 清除全部数据
localStorage.clear()
(5) 音频和视频
  1. 音频<audio>标签
  2. 视频<video>标签
(6) DOM操作
  1. 选择器
document.querySelector();
document.querySelector();
  1. 自定义属性

    js里可以通过box.index = 100; box.title来自定义属性和获取属性

    H5可以直接在标签里添加自定义属性,但必须以data-开头

<body>
    <!-- 给标签添加自定义属性 必须以data-开头 -->
    <div
      class="box"
      title="盒子"
      data-my-name="smyhvae"
      data-content="我是一个div"
    >
      div
    </div>
    <script>
      var box = document.querySelector(".box");

      //自定义的属性 需要通过 dateset[]方式来获取
      console.log(box.dataset["content"]); //打印结果:我是一个div
      console.log(box.dataset["myName"]); //打印结果:smyhvae

      //设置自定义属性的值
      var num = 100;
      num.index = 10;
      box.index = 100;
      box.dataset["content"] = "aaaa";
    </script>
  </body>
(7) 拖拽api
  1. draggable = "true"讲需要被拖放的数据加上此属性
  2. setData()保存数据
  3. drag ondrag当拖放元素或选中的文本时触发
  4. dragend ondragend当拖拽操作结束时触发
  5. dragenter ondragenter当拖动元素或选中的文本到一个可释放目标时触发
  6. dragexit ondragexit当元素变得不再是拖动操作的选中目标时触发
  7. dragleave ondragleave当拖动元素或选中的文本离开一个可释放目标时触发
  8. dragover ondragover当元素或选中的文本被拖到一个可释放目标上时触发
  9. dragstart ondragstart 当用户开始拖动一个元素或选中的文本时触发
  10. drop ondrop当元素或选中的文本在可释放目标上被释放时触发
(8) 离线缓存

​ HTML5中我们可以轻松的构建一个离线(无网络状态)应用,只需要创建一个cachemanifest缓存清单文件.

  1. 离线缓存优势

    • 可配置需要缓存的资源
    • 网路无连接应用仍可用
    • 本地读取缓存资源,提升访问速度,增强用户体验
    • 减少请求,缓存服务器负担
  2. 缓存清单文件

    缓存清单文件中列出了浏览器缓存,以供离线访问的资源,推荐使用.appcache作为后缀名,另外还要添加MIME类型.

(9) 地图和地理定位

​ 获取地理定位:

  1. html5提供了获取定位的api
// 封装获取定位的方法
      function getLocation() {
        if (!navigator.geolocation) {
          console.log("对不起,你的浏览器不支持地理定位");
          return false;
        }
        // 调用html提供的api获取经纬度
        navigator.geolocation.getCurrentPosition(
          function successCallback(position) {
            // 纬度
            var wd = position.coords.latitude;
            // 经度
            var jd = position.coords.longitude;
          },
          function (err) {
            console.log("获取位置失败");
          }
        );
      } 
  1. 可以使用百度地图,腾讯地图或者高德地图提交的公共api完成地图定位和地图绘制

    • 申请apikey(也就是访问腾讯地图api的通行证)

    • 登录腾讯地图服务,控制台=>应用管理=>我的应用=>创建应用=>添加key

    • 调用接口

 <!DOCTYPE html>
 <html>

 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>前端定位模块</title>
     <meta name="viewport"
         content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> 
     <script type="text/javascript" src="https://mapapi.qq.com/web/mapComponents/geoLocation/v/geolocation.min.js">
     </script>
 </head>

 <body>
    <button onClick="get()">获取定位信息</button>
    <p></p>


     <script type="text/JavaScript">
         var geolocation = new qq.maps.Geolocation("XBZBZ-OBG63-LOD3N-3QR5Q-X6Z2Q-BFBIR", "woshilaohu");   

        function get(params) {
            geolocation.getIpLocation(function (position) { 
            document.querySelector('p').innerHTML = JSON.stringify(position);
        }, function () {
            document.querySelector('p').innerHTML = '定位失败';
        });
        } 
    </script>
 </body> 
 </html>
(10) 绘图- canvas
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      canvas {
        border: 1px solid;
      }
    </style>
  </head>
  <body>
    <canvas id="myCanvas" width="600" height="600"></canvas>
    <script>
      var c = document.getElementById("myCanvas");
      var cxt = c.getContext("2d"); //获取2d作图对象
      cxt.moveTo(10, 10); //画线的的起始点
      cxt.lineTo(150, 50); //画线
      cxt.lineTo(10, 50);
      cxt.stroke(); //线
      cxt.fillStyle = "#FF0000"; //填充颜色
      cxt.beginPath(); //开始路径
      cxt.arc(70, 18, 15, 0, Math.PI * 2, true); //画圆
      cxt.closePath(); //结束路径
      cxt.fill(); //填充

      var img = document.createElement("img");
      img.src = "https://www.w3school.com.cn/i/eg_dragdrop_w3school.gif";
      img.onload = function () {
        cxt.drawImage(img, 200, 200); //画布填充图片
      };
    </script>
  </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值