패스트캠퍼스 온라인 강의를 통해 만든 ★다방 랜딩페이지. YOUTUBE 영상을 배경으로 넣는 방법을 배웠다
코드를 작성하면서 생긴 궁금증
HTML에서 왜 "youtube__area"
와 형제 요소로"youtube__cover
"를 두는지와
Youtube IFrame API 문서의 3번을 실행할 때, 변수 선언부분 var player;는 왜 스킵하고
new YT.player을 변수에 할당하는 부분은 왜 스킵했는지...
CSS를 작성할 때, margin-top: calc(1920px * 9 / 16 / -2); 이건 무슨 원리로 이렇게 계산이 되며 어떻게 이렇게 부모요소인 youtube를 지나서 배치가 되는지....
<div id="player"></div>
를 삽입"youtub__cover"
)을 만들 때, "youtube__area"
와 형제 요소로 "youtube__cover"
를 만들어서 "youtube__cover"
가 "youtube__area"
위에 덮어 쓰는 방식을 사용<script defer src="./js/youtube.js"></script>
> youtube.js 파일을 html파일과 연결시키기 위해 head tag에 삽입<!-- YOUTUBE VIDEO -->
<section class="youtube">
<div class="youtube__area">
<div id="player"></div>
</div>
<div class="youtube__cover"></div>
</section>
<div id="player">
id값
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
new YT.Player('player', {
videoId: 'An6LvWQuj_8',
playerVars: {
autoplay: true,
loop: true,
playlist: 'An6LvWQuj_8'
},
events: {
onReady: function (event) {
event.target.mute() // 영상이 준비가 되면 영상을 음소거 처리
}
}
});
}
/* YOUTUBE VIDEO */
.youtube {
position: relative;
height: 700px;
background-color: #333;
/* youtube 영역에서 넘치는 부분 전부 잘라내기 */
overflow: hidden;
}
.youtube .youtube__area {
width: 1920px;
position: absolute;
left: 50%;
margin-left: calc(1920px/-2);
/* top부분에 50%부분에 위치하겠음 */
top: 50%;
margin-top: calc(1920px * 9 / 16 / -2);
}
.youtube .youtube__area::before {
content: "";
/* 가상요소선택자는 인라인요소이기 때문에 display: block; 선언 */
display: block;
width : 100%;
height: 0;
padding-top:56.25%;
}
.youtube .youtube__cover {
background-image: url("../images/video_cover_pattern.png");
background-color: rgba(0,0,0,.3);
position:absolute;
top:0;
left:0;
width: 100%;
height: 100%;
}
#player {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}