HTML5

HTML5新特性帮助我们构建web应用程序

Posted by page on June 24, 2020

HTML5

元素

语义化标签:header, nav, aside, section, article, footer

应用程序标签:datalist, progress, meter

媒体元素:audio, video, embed

图形图像:SVG, Canvas

input类型:date, number, range, tel, search

video

事件

oncanplay:视频可播放,除了首次触发,视频当前时间变化时也会触发

onloadeddata:视频首次数据准备完成(仅支撑开始播放数据)

自动播放

允许静音下自动播放

<iframe src="https://player.vimeo.com/video/156299091?muted=1&autoplay=1" frameborder="0" allowfullscreen></iframe>

audio

主动播放

主动播放前存在交互行为,可点击时播放静音音频,此后浏览器允许js主动播放

自动播放

属性

链接关系属性:rel="start/next/prev/friend"

自定义属性:data-xxx="value"

表单属性:placeholder="",require="require",multiple="multiple"

DOM

DOM获取:document.querySelector/.querySelectorAll

样式集获取: classList

事件

拖放操作

事件

  • dragstart:拖拽开始时触发的事件。
  • drag:拖拽过程中持续触发的事件。
  • dragend:拖拽结束时触发的事件。
  • dragenter:拖拽元素进入目标容器时触发的事件(单次触发)。
  • dragover:拖拽元素在目标容器上方悬停时持续触发的事件(多次触发)。
  • dragleave:拖拽元素离开目标容器时触发的事件。
  • drop:拖拽元素放置到目标容器时触发的事件。

API

  • dataTransfer:用于在拖放过程中传递数据的对象,包含拖拽的数据和操作方法。
  • effectAllowed:用于设置拖放操作的效果。
  • dropEffect:用于设置放置操作的效果。

实现

  • 拖拽源即要拖动的元素,设置 draggable 属性为 true 来允许元素进行拖拽。

  • 监听拖拽事件:dragstart 监听拖拽开始,阻止放置目标 dragover 清除默认拖入行为。

  • 处理拖放事件:监听放置目标 drop 事件,处理传递数据。

更多详见:[HTML 拖放 API - Web API 接口参考 MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/HTML_Drag_and_Drop_API)

禁用拖拽

draggable="false":设置不可拖拽

user-select: none;:设置不可选中

@dragstart.prevent:阻止拖拽事件(适用于图片)

历史记录控制

history.pushState, window.onpopstate

BOM

浏览器全屏:docuement.body.requestFullScreen

web存储

localStorage,sessionStorage

indexDB

SVG

svg采用 xml 描述矢量图形

svg图标颜色

<defs>
  <style>
    .cls-1 {
      // 设为字体颜色
      fill: currentColor;
      stroke: currentColor;
    }
  </style>
</defs>
// 或直接设置fill: currentColor
<path class="cls-1" ...></path>

注: svg属性严格区分大小写