responsive-youtube.js 라이브러리가 포함된 반응형 YouTube 플레이어 API
6410 단어 youtubejavascript
width="100%"
포함:<iframe width="100%" src="https://www.youtube.com/embed/<video ID>" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
그러나 높이는 너비의 비율과 일치하지 않습니다.
그런 다음 with
width: '100%'
를 사용하려고 했습니다.player = new YT.Player('<element ID>', {
width: '100%',
videoId: '<video ID>'
});
그러나 나는 또한 플레이어가 반응적이고 적응적인 레이아웃에서 잘 작동하도록 만들 수 없었습니다. 그러나 너비와 높이를 지정하지 않고 플레이어를 배치하면 플레이어가 비디오 원본 크기의 대략적인 비율에 따라 크기로 시작한다는 것을 알았고 이 정보를 사용하여
Element.clientWidth
를 사용하여 너비와 높이를 가져오기로 결정했습니다. Element.clientHeight
다음과 같은 상황에서 간단한 계산을 적용했습니다.onReady
(유튜브 API) onresize
setTimeout
(300ms) 간단한 계산:
if (originalWidth != originalHeight)
element.height = currentWidth / (originalWidth / originalHeight);
} else
element.height = currentWidth;
}
부분적으로 해결된 문제입니다. 그러나 History API(Vue.js, Angular 등과 같은)와 함께
XMLHttpRequest
를 사용하여 페이징하는 것과 같이 "요구"에 따라 특정 항목을 로드하는 시스템이 있습니다. 이를 해결하기 위한 최상의 옵션은 MutationObserver
API와 같았습니다. { childList: true }
.그래서 이 문제를 해결하기 위해 하나 이상의 요구 사항이 발생함에 따라 라이브러리로 전환하여 공유하는 것이 더 낫다고 결정했습니다.
라이브러리는 3,15KB(최소화) 및 웹 서버에서 gzip으로 압축될 때 1,55KB(예:
ngx_http_gzip_module
또는 mod_deflate
)를 갖습니다.구성
릴리스에서 다운로드하여 페이지에 넣을 수 있습니다.
<script src="responsive-youtube.min.js"></script>
또는 CDN을 사용하십시오.
<script src="https://cdn.jsdelivr.net/npm/[email protected]/responsive-youtube.min.js"></script>
npm 사용:
npm i responsive-youtube.js
다음을 사용하여 가져옵니다.
const SimpleCopy = require('responsive-youtube.js');
ECMAScript 모듈 사용:
import SimpleCopy from 'responsive-youtube.js'
페이지에 플레이어 추가
간단한 예:
<!-- embed video in page -->
<div data-ry-video="Tdjk9dhT_AU"></div>
<!-- embed video in page without "responsive" -->
<div data-ry-video="5ABos9UTfJU" data-ry-ignore="true"></div>
<script src="responsive-youtube.js"></script>
<script>
ResponsiveYoutube.start();
</script>
예
<script src="responsive-youtube.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/responsive-youtube.min.js"></script>
npm i responsive-youtube.js
const SimpleCopy = require('responsive-youtube.js');
import SimpleCopy from 'responsive-youtube.js'
간단한 예:
<!-- embed video in page -->
<div data-ry-video="Tdjk9dhT_AU"></div>
<!-- embed video in page without "responsive" -->
<div data-ry-video="5ABos9UTfJU" data-ry-ignore="true"></div>
<script src="responsive-youtube.js"></script>
<script>
ResponsiveYoutube.start();
</script>
예
브라우저 지원
✔
✔
✔
✔
6+ ✔
10+ ✔
Reference
이 문제에 관하여(responsive-youtube.js 라이브러리가 포함된 반응형 YouTube 플레이어 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brcontainer/responsive-youtube-player-api-with-the-responsive-youtube-js-lib-486l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)