웹 프론트엔드 HTML 튜토리얼 html5의 이러한 API를 알고 계십니까?

html5의 이러한 API를 알고 계십니까?

Dec 03, 2016 am 11:28 AM
api html5

다음은 이전에 배운 일부 HTML5 API에 대한 요약입니다. HTML5에는 이해하고 배울 가치가 있는 많은 기능과 인터페이스가 있습니다.

페이지 가시성 API --페이지 가시성

전체 화면 API --전체 화면

Get MediaAPI --getUserMedia

배터리 API --battery

리소스 사전 로드 API-링크 사전 가져오기

페이지 가시성 Page Visibility API

이 API는 사용자에게 페이지의 가시성을 감지하는 데 사용할 수 있습니다. 즉, 페이지를 반환합니다. 현재 사용자가 탐색하고 있는 라벨 탭의 상태 변경. 브라우저가 최소화되고 탭 페이지가 전환될 때 적용됩니다. (앱에서 여러 웹뷰 간에 전환해야 하는 경우 pageVisibility 인터페이스를 사용하여 해당 이벤트를 모니터링하고 처리할 수 있습니다.)

소개 페이지 가시성

[document.hidden] 이 값은 페이지가 표시되는지 여부를 나타내며 값은 부울 값입니다.

[document.visibilityState] 이 가시성 상태는 세 가지 가능한 값을 가질 수 있습니다.

[visible ] 페이지가 맨 앞에 있고 최소화된 창에 있지 않음을 나타냅니다.

[hidden] 페이지가 맨 앞에 있지 않거나 최소화된 창에 있음을 나타냅니다.

[prerender] 페이지의 콘텐츠가 다시 렌더링되고 페이지가 사용자에게 보이지 않음을 나타냅니다.

[isibilitychange 이벤트]*창 가시성의 변경을 수신하는 이벤트

관련 코드:

// 设置隐藏属性和可见改变事件的名称,属性需要加浏览器前缀  // since some browsers only offer vendor-prefixed support  var hidden, state, visibilityChange;  if (typeof document.hidden !== "undefined") {  
  hidden = "hidden";  
  visibilityChange = "visibilitychange";  
  state = "visibilityState";  
} else if (typeof document.mozHidden !== "undefined") {  
  hidden = "mozHidden";  
  visibilityChange = "mozvisibilitychange";  
  state = "mozVisibilityState";  
} else if (typeof document.msHidden !== "undefined") {  
  hidden = "msHidden";  
  visibilityChange = "msvisibilitychange";  
  state = "msVisibilityState";  
} else if (typeof document.webkitHidden !== "undefined") {  
  hidden = "webkitHidden";  
  visibilityChange = "webkitvisibilitychange";  
  state = "webkitVisibilityState";  
} // 添加一个标题改变的监听器  document.addEventListener(visibilityChange, function(e) { // 开始或停止状态处理  }, false);
로그인 후 복사

페이지 가시성 사용

이를 어떻게 사용하여 가시성을 변경할 수 있나요?

페이지가 표시되지 않으면 새로 고쳐지지 않고, 표시되면 새로 고쳐지는 페이지를 제어할 수 있습니다.

또한 일시중지할 수 있습니다. 페이지 표시 여부에 따라 오디오를 계속 재생합니다

단순한 내용이 아닌 페이지 표시 여부를 기준으로 이 페이지에 머무르는 웹사이트 사용자에 대한 보다 정확한 데이터를 계산할 수도 있습니다. 이 페이지에 머무르지 않고 페이지를 엽니다.

전체 화면 API전체 화면 API

이 API를 사용하면 개발자는 프로그래밍 방식으로 웹 애플리케이션을 전체 화면에서 실행하여 웹 애플리케이션을 기본 애플리케이션과 비슷하게 만들 수 있습니다. 매우 간단하고 유용한 API입니다.

전체 화면 소개

FullScreen의 API는 사용이 매우 간단하며 두 가지 모드가 있습니다

전체 화면 모드 실행

// 找到适合浏览器的全屏方法  function launchFullScreen(element) {  if(element.requestFullScreen) {  
    element.requestFullScreen();  
  } else if(element.mozRequestFullScreen) {  
    element.mozRequestFullScreen();  
  } else if(element.webkitRequestFullScreen) {  
    element.webkitRequestFullScreen();  
  }  
} // 启动全屏模式  launchFullScreen(document.documentElement); // the whole page  launchFullScreen(document.getElementById("videoElement")); // any individual element
로그인 후 복사

전체 화면 모드 종료

// Whack fullscreenfunction exitFullscreen() { if(document.exitFullscreen) { document.exitFullscreen();
  } else if(document.mozCancelFullScreen) { document.mozCancelFullScreen();
  } else if(document.webkitExitFullscreen) { document.webkitExitFullscreen();
  }
} // Cancel fullscreen for browsers that support it! exitFullscreen();
로그인 후 복사

전체 화면 관련 속성 및 이벤트

현재 전체 화면에는 여전히 호환성 문제가 있으며 사용할 수 있는 많은 브라우저는 여전히 해당 속성 및 이벤트가 필요합니다. 관련 접두사가 추가됩니다.

[document.fullScreenElement] 이 속성은 전체 화면(예: 비디오)을 시작하는 요소를 나타냅니다.

[document.fullScreenEnabled] 이 속성은 현재 전체 화면인지 여부를 나타냅니다.

[fullscreenchange 이벤트] 전체 화면 상태가 변경되는 이벤트 듣기

2.2 전체 화면 관련

css 전체 화면에 대한 CSS 속성이 있습니다

:-webkit-full-screen,
:-moz-full-screen,
:-ms-fullscreen,
:full-screen {
    /*pre-spec */
   /* properties */
}
:fullscreen { 
    /* spec */
   /* properties */
}
/* deeper elements */:-webkit-full-screen video {
   width: 100%;
   height: 100%;
}
/* styling the backdrop*/::backdrop {
  /* properties */
}
::-ms-backdrop {
  /* properties */
}
로그인 후 복사

전체 화면 요약

아니요. 이 API를 처음 본 것은 모바일 소설이나 모바일 만화 사이트를 보다가 전체 화면 보기 기능이 있다는 것을 알았을 때였습니다. 전체 화면 API는 현재 호환성 문제가 있을 수 있지만 가까운 미래에 확실히 많이 사용될 API가 될 것이라고 믿습니다.

getUserMedia API

이 API를 사용하면 웹 애플리케이션에서 카메라에 액세스하고 마이크 플러그인을 사용하지 않고 이 API는 클라이언트에서 처음 지원되었지만 여전히 PC에서는 사용할 수 없습니다.

getUserMedia API 소개

아래 html을 먼저 읽어보세요

<!--
    正常正确情况下,使用video等元素,我们是需要在确认客户端是支持该元素时才
    回相应地用js创建这些元素,但通过使用getUserMedia api,
    我们即可在html中直接创建这些元素(而不需要用js来创建),
--> <video id="video" width="640" height="480" autoplay></video> <button id="snap">Snap Photo</button> <canvas id="canvas" width="640" height="480"></canvas>
로그인 후 복사

관련 JS 코드

// 设置事件监听器  window.addEventListener("DOMContentLoaded", function() { // 获取元素  var canvas = document.getElementById("canvas"),  
    context = canvas.getContext("2d"),  
    video = document.getElementById("video"),  
    videoObj = { "video": true },  
    errBack = function(error) { console.log("Video capture error: ", error.code);   
    }; // 设置video监听器  if(navigator.getUserMedia) { // Standard  navigator.getUserMedia(videoObj, function(stream) {  
      video.src = stream;  
      video.play();  
    }, errBack);  
  } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed  navigator.webkitGetUserMedia(videoObj, function(stream){  
      video.src = window.webkitURL.createObjectURL(stream);  
      video.play();  
    }, errBack);  
  }  
}, false);
로그인 후 복사

一旦确定当前浏览器是支持getUserMedia的时, 我们可以同简单的方法将当前我们的video元素的src视频地址赋值给用户手机本地的video,然后通过video的play方法拉起本地video的启动和连接。这样的话我们就可以使用本地的播放器来播放。

电池API(Battery API)

这是一个针对移动设备应用程序的API,主要用于检测设备电池信息。

Battery API 的介绍

var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery; // 电池属性  console.warn("Battery charging: ", battery.charging); 
// 当前电池是否在充电 true  console.warn("Battery level: ", battery.level); 
// 0.58  console.warn("Battery discharging time: ", battery.dischargingTime); 
// 添加事件监听器  battery.addEventListener("chargingchange", function(e) { console.warn("Battery charge change: ", battery.charging);  
}, false);
로그인 후 복사

为什么获取电池信息的api

为什么我们需要用到battery api?现在许多移动端apps都内嵌着web浏览器包装的(不再是完全native的应用)。所以我们需要一个方法去获取系统的信息,app有一些过程是`十分耗电的,然后我们就需要在用户启动时给用户一些警告信息告诉用户当前设备电量较低。这是一个十分重要简单的api.相应在不久的将来会发挥应有的作用。

Link Prefetching【预加载】

Link Prefetching【预加载】

预加载网页内容为浏览者提供一个平滑的浏览体验。这个api我们在业务偶尔也会使用到

什么是link预加载

Link prefetching 是利用浏览器最佳的时间去下载或者预加载一些用户可能将会在不久将来浏览的文档的一种浏览器机制。

<!-- full page --> <link rel="prefetch" href="http://davidwalsh.name/css-enhancements-user-experience" /> 
<!-- just an image --> <link rel="prefetch" href="http://davidwalsh.name/wp-content/themes/walshbook3/images/sprite.png" />
로그인 후 복사

什么时候使用link预加载是否在自己的网站使用预加载,可以参考一下几点:

当你做的是一种类似slideshow的网页,需要提前加载近1-3张页面(假设这些页面并不大)

预先加载在网站中许多网页都会用到的图片

预先加载网站搜索的结果的页面

参考链接 http://davidwalsh.name/

    

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

HTML의 테이블 테두리 HTML의 테이블 테두리 Sep 04, 2024 pm 04:49 PM

HTML의 테이블 테두리 안내. 여기에서는 HTML의 테이블 테두리 예제를 사용하여 테이블 테두리를 정의하는 여러 가지 방법을 논의합니다.

HTML의 중첩 테이블 HTML의 중첩 테이블 Sep 04, 2024 pm 04:49 PM

HTML의 Nested Table에 대한 안내입니다. 여기에서는 각 예와 함께 테이블 내에 테이블을 만드는 방법을 설명합니다.

HTML 여백-왼쪽 HTML 여백-왼쪽 Sep 04, 2024 pm 04:48 PM

HTML 여백-왼쪽 안내. 여기에서는 HTML margin-left에 대한 간략한 개요와 코드 구현과 함께 예제를 논의합니다.

HTML 테이블 레이아웃 HTML 테이블 레이아웃 Sep 04, 2024 pm 04:54 PM

HTML 테이블 레이아웃 안내. 여기에서는 HTML 테이블 레이아웃의 값에 대해 예제 및 출력 n 세부 사항과 함께 논의합니다.

HTML 정렬 목록 HTML 정렬 목록 Sep 04, 2024 pm 04:43 PM

HTML 순서 목록에 대한 안내입니다. 여기서는 HTML Ordered 목록 및 유형에 대한 소개와 각각의 예에 대해서도 설명합니다.

HTML 입력 자리 표시자 HTML 입력 자리 표시자 Sep 04, 2024 pm 04:54 PM

HTML 입력 자리 표시자 안내. 여기서는 코드 및 출력과 함께 HTML 입력 자리 표시자의 예를 논의합니다.

HTML에서 텍스트 이동 HTML에서 텍스트 이동 Sep 04, 2024 pm 04:45 PM

HTML에서 텍스트 이동 안내. 여기서는 Marquee 태그가 구문과 함께 작동하는 방식과 구현할 예제에 대해 소개합니다.

HTML 온클릭 버튼 HTML 온클릭 버튼 Sep 04, 2024 pm 04:49 PM

HTML onclick 버튼에 대한 안내입니다. 여기에서는 각각의 소개, 작업, 예제 및 다양한 이벤트의 onclick 이벤트에 대해 설명합니다.

See all articles