HTML5의 새로운 기능은 다음과 같습니다. 1. 페이지의 콘텐츠를 구조화하고 표시하는 의미 태그(헤더, 바닥글 등) 2. 여러 가지 새로운 양식 입력 유형을 갖춘 향상된 양식은 더 나은 입력 제어를 제공할 수 있습니다. 3. 비디오 및 오디오 파일 재생을 위한 표준 방법 제공 5. SVG 그리기 7. 웹 작업자 , 등. 이 튜토리얼의 운영 환경: Windows 7 시스템, HTML5 버전, Dell G3 컴퓨터. HTML5의 상위 10가지 새로운 기능 오늘날의 인터넷 애플리케이션을 더 잘 처리하기 위해 HTML5에는 그래픽 그리기, 멀티미디어 콘텐츠, 더 나은 페이지 구조, 더 나은 형식 처리 및 여러 API와 같은 많은 새로운 요소와 기능이 추가되었습니다. 요소 드래그 앤 드롭, 웹 애플리케이션 캐싱, 저장, 네트워크 작업자 등을 포함한 위치 지정 (1) 의미 태그 의미 태그는 페이지의 콘텐츠를 구조화하고 이름을 알 수 있습니다 태그 설명 는 문서의 헤더 영역을 정의합니다 < ;/바닥글> 문서의 꼬리 영역을 정의합니다 문서의 탐색을 정의합니다 문서의 섹션을 정의합니다 (섹션, 섹션) 페이지의 독립 콘텐츠 영역 정의 사이드바 콘텐츠 정의 페이지 프롬프트 상자와 같은 대화 상자 정의 (2) 향상된 양식 HTML5에는 여러 가지 새로운 양식 입력 입력 유형이 있습니다. 이러한 새로운 기능은 더 나은 입력 제어 및 검증을 제공합니다. 입력 유형 설명 color 주로 색상을 선택하는 데 사용됩니다 date 날짜 선택 날짜 선택기에서 날짜 datetime 날짜 선택(UTC 시간) DateTime-Local 날짜 및 시간 선택(시간표) 이메일 주소 month 월 선택 number 숫자 값 입력 필드 range 특정 범위 내의 숫자 값 입력 필드 search 검색 필드 텔 입력 전화번호 필드 정의 time 시간 선택 url URL 주소 입력 필드 week 주와 연도 선택 HTML5는 또한 다음 양식 요소를 추가합니다 Form 요소Description 요소 지정 입력 도메인 옵션 목록 사용 < input> 요소는 요소의 ID에 바인딩됩니다. 사용자를 인증하는 신뢰할 수 있는 방법을 제공합니다. 태그는 양식에 사용되는 키를 지정합니다. 발전기 분야. 은 계산 또는 스크립트 출력 과 같은 다양한 유형의 출력 에 사용됩니다. HTML5의 새로운 양식 속성 placehoder 속성은 사용자가 값을 입력하기 전에 입력 필드에 짧은 프롬프트가 표시됩니다. 즉, 입력 상자의 일반적인 기본 프롬프트는 사용자가 입력한 후에 사라집니다. 필수 속성은 부울 속성입니다. 채워야 하는 입력 필드는 비워둘 수 없습니다. 패턴 속성은 요소의 값을 확인하는 데 사용되는 정규식을 설명합니다. min 및 max 속성은 요소의 최소값과 최대값을 설정합니다. step 속성은 입력 필드의 유효한 숫자 간격을 지정합니다. 높이 및 너비 속성은 이미지 유형의 태그의 이미지 높이 및 너비에 사용됩니다. autofocus 속성은 부울 속성입니다. 페이지가 로드될 때 필드에 자동으로 초점이 맞춰지도록 지정합니다. 다중 속성은 부울 속성입니다. 요소 내에서 여러 값을 선택할 수 있도록 지정합니다. (3) 비디오 및 오디오 HTML5는 재생, 일시 정지 추가를 위한 그리고 볼륨 조절. 와 사이에는 브라우저가 지원하지 않는 요소의 프롬프트 텍스트를 삽입해야 합니다. 요소는 여러 개의 요소를 사용할 수 있으며, 브라우저는 지원되는 첫 번째 오디오 파일을 사용합니다. 요소는 MP3, Wav 및 Ogg의 세 가지 오디오 형식 파일을 지원합니다. HTML5는 비디오 요소를 통해 비디오를 포함하는 표준 방법을 지정합니다. 您的浏览器不支持 audio 元素。 로그인 후 복사control은 비디오를 제어하기 위한 재생, 일시 정지 및 볼륨 제어 기능을 제공합니다. DOM 작업을 사용하여 play() 및 Pause() 메서드와 같은 비디오의 재생 및 일시 중지를 제어할 수도 있습니다. 동시에 비디오 요소는 비디오 크기를 제어하기 위한 너비 및 높이 속성도 제공합니다. 높이와 너비가 설정되면 페이지가 로드될 때 필요한 비디오 공간이 예약됩니다. 이러한 속성이 설정되지 않고 브라우저가 비디오의 크기를 알지 못하는 경우 브라우저는 로드 시 특정 공간을 예약할 수 없으며 페이지는 원본 비디오의 크기에 따라 변경됩니다. 과 태그 사이에 삽입된 콘텐츠는 video 요소를 지원하지 않는 브라우저에서 표시되도록 제공됩니다. 비디오 요소는 여러 소스 요소를 지원하며 다양한 비디오 파일을 연결할 수 있습니다. 브라우저는 첫 번째 인식 형식(MP4, WebM 및 Ogg)을 사용합니다. (4) 캔버스 그리기 태그는 그래픽 컨테이너일 뿐이며 그래픽을 그리려면 스크립트를 사용해야 합니다. 캔버스 - 그래픽 1. 캔버스를 만듭니다. 캔버스는 요소를 통해 그려진 웹 페이지의 직사각형 상자입니다. 기본적으로 요소에는 테두리나 내용이 없습니다. 您的浏览器不支持Video标签。 로그인 후 복사 태그는 일반적으로 id 속성(종종 스크립트에서 참조됨)을 지정해야 하며, 너비 및 높이 속성은 캔버스의 크기를 정의하고, 스타일 속성을 사용하여 테두리를 추가합니다. HTML 페이지에서 여러 요소를 사용할 수 있습니다2. Javascript를 사용하여 이미지를 그릴 수 있습니다. 캔버스 요소 자체에는 그리기 기능이 없습니다. 모든 그리기 작업은 JavaScript 내에서 수행되어야 합니다로그인 후 복사 getContext("2d") 개체는 경로, 직사각형, 원, 문자 그리기 및 이미지 추가를 위한 여러 메서드가 포함된 내장 HTML5 개체입니다. fillStyle 속성 설정은 CSS 색상, 그라데이션 또는 패턴일 수 있습니다. 기본 fillStyle 설정은 #000000(검은색)입니다. fillRect(x,y,width,height) 메서드는 직사각형의 현재 채우기 방법을 정의합니다. 의미: 왼쪽 위 모서리(0,0)부터 시작하여 캔버스에 150x75 직사각형을 그립니다. Canvas - 경로 캔버스에 선을 그리려면 다음 두 가지 메서드를 사용합니다. moveTo(x,y) 선의 시작 좌표를 정의 lineTo(x,y) ) 선의 끝 정의 좌표를 사용하여 선을 그리려면 스트로크()와 마찬가지로 "잉크" 메서드를 사용해야 합니다. rreee 定义开始坐标(0,0), 和结束坐标 (200,100). 然后使用 stroke() 方法来绘制线条Canvas - 文本使用 canvas 绘制文本,重要的属性和方法如下: font - 定义字体 fillText(text,x,y) - 在 canvas 上绘制实心的文本 strokeText(text,x,y) - 在 canvas 上绘制空心的文本使用 fillText():var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.font="30px Arial"; ctx.fillText("Hello World",10,50);로그인 후 복사 使用 "Arial" 字体在画布上绘制一个高 30px 的文字(实心)Canvas - 渐变渐变可以填充在矩形, 圆形, 线条, 文本等等, 各种形状可以自己定义不同的颜色。以下有两种不同的方式来设置Canvas渐变: createLinearGradient(x,y,x1,y1) - 创建线条渐变 createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变当我们使用渐变对象,必须使用两种或两种以上的停止颜色。addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0至1.使用渐变,设置fillStyle或strokeStyle的值为渐变,然后绘制形状,如矩形,文本,或一条线。var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); // Create gradient var grd=ctx.createLinearGradient(0,0,200,0); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle=grd; ctx.fillRect(10,10,150,80);로그인 후 복사 创建了一个线性渐变,使用渐变填充矩形Canvas - 图像 把一幅图像放置到画布上, 使用 drawImage(image,x,y) 方法var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("scream"); ctx.drawImage(img,10,10);로그인 후 복사 把一幅图像放置到了画布上(5)SVG绘图 SVG是指可伸缩的矢量图形SVG 与 Canvas两者间的区别 SVG 是一种使用 XML 描述 2D 图形的语言。 Canvas 通过 JavaScript 来绘制 2D 图形。 SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。 Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。(6)地理定位 HTML5 Geolocation(地理定位)用于定位用户的位置。window.navigator.geolocation { getCurrentPosition: fn 用于获取当前的位置数据 watchPosition: fn 监视用户位置的改变 clearWatch: fn 清除定位监视 } 로그인 후 복사 获取用户定位信息:navigator.geolocation.getCurrentPosition( function(pos){로그인 후 복사 console.log('用户定位数据获取成功') //console.log(arguments); console.log('定位时间:',pos.timestamp) console.log('经度:',pos.coords.longitude) console.log('纬度:',pos.coords.latitude) console.log('海拔:',pos.coords.altitude) console.log('速度:',pos.coords.speed)}, //定位成功的回调function(err){로그인 후 복사 console.log('用户定位数据获取失败') //console.log(arguments);} //定位失败的回调)로그인 후 복사(7)拖放API 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。 拖放的过程分为源对象和目标对象。源对象是指你即将拖动元素,而目标对象则是指拖动之后要放置的目标位置。拖放的源对象(可能发生移动的)可以触发的事件——3个:dragstart:拖动开始drag:拖动中dragend:拖动结束整个拖动过程的组成: dragstart*1 + drag*n + dragend*1拖放的目标对象(不会发生移动)可以触发的事件——4个:dragenter:拖动着进入dragover:拖动着悬停dragleave:拖动着离开drop:释放整个拖动过程的组成1: dragenter*1 + dragover*n + dragleave*1整个拖动过程的组成2: dragenter*1 + dragover*n + drop*1dataTransfer:用于数据传递的“拖拉机”对象; 在拖动源对象事件中使用e.dataTransfer属性保存数据:e.dataTransfer.setData( k, v ) 在拖动目标对象事件中使用e.dataTransfer属性读取数据:var value = e.dataTransfer.getData( k )(8)Web Worker 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。 web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。 首先检测浏览器是否支持 Web Worker if(typeof(Worker)!=="undefined"){ // 是的! Web worker 支持! // 一些代码..... }else{ // //抱歉! Web Worker 不支持 }로그인 후 복사 下面的代码检测是否存在 worker,如果不存在,- 它会创建一个新的 web worker 对象,然后运行 "demo_workers.js" 中的代码 if(typeof(w)=="undefined") { w=new Worker("demo_workers.js"); }로그인 후 복사 然后我们就可以从 web worker 发送和接收消息了。向 web worker 添加一个 "onmessage" 事件监听器: w.onmessage=function(event){ document.getElementById("result").innerHTML=event.data; };로그인 후 복사 当 web worker 传递消息时,会执行事件监听器中的代码。event.data 中存有来自 event.data 的数据。当我们创建 web worker 对象后,它会继续监听消息(即使在外部脚本完成之后)直到其被终止为止。如需终止 web worker,并释放浏览器/计算机资源,使用 terminate() 方法。完整的 Web Worker 实例代码 Count numbers: Start Worker Stop Worker var w;function startWorker() {if(typeof(Worker)!=="undefined") { if(typeof(w)=="undefined") { w=new Worker("demo_workers.js"); } w.onmessage = function (event) { document.getElementById("result").innerHTML=event.data; }; }else{ document.getElementById("result").innerHTML="Sorry, your browser does not support Web Workers..."; } }function stopWorker() { w.terminate(); } 로그인 후 복사 创建的计数脚本,该脚本存储于 "demo_workers.js" 文件中var i=0; function timedCount() { i=i+1; postMessage(i); setTimeout("timedCount()",500); } timedCount();로그인 후 복사(9)Web Storage 使用HTML5可以在本地存储用户的浏览数据。早些时候,本地存储使用的是cookies。但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能。数据以 键/值 对存在, web网页的数据只允许该网页访问使用。客户端存储数据的两个对象为:localStorage - 没有时间限制的数据存储sessionStorage - 针对一个 session 的数据存储, 当用户关闭浏览器窗口后,数据会被删除。 在使用 web 存储前,应检查浏览器是否支持 localStorage 和sessionStorageif(typeof(Storage)!=="undefined") { // 是的! 支持 localStorage sessionStorage 对象! // 一些代码..... } else { // 抱歉! 不支持 web 存储。 }로그인 후 복사 不管是 localStorage,还是 sessionStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):保存数据:localStorage.setItem(key,value);读取数据:localStorage.getItem(key);删除单个数据:localStorage.removeItem(key);删除所有数据:localStorage.clear();得到某个索引的key:localStorage.key(index);(10)WebSocket WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。 W3Cschool教程(w3cschool.cn) function WebSocketTest() { if ("WebSocket" in window) { alert("您的浏览器支持 WebSocket!"); // 打开一个 web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已连接上,使用 send() 方法发送数据 ws.send("发送数据"); alert("数据发送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("数据已接收..."); }; ws.onclose = function() { // 关闭 websocket alert("连接已关闭..."); }; } else { // 浏览器不支持 WebSocket alert("您的浏览器不支持 WebSocket!"); } } 运行 WebSocket 로그인 후 복사更多编程相关知识,请访问:编程学习!!