새소식

Web/프론트엔드

Day1 : 스타벅스 웹사이트 만들기 / Toggle & Youtube iframe API

  • -

 

HTML/CSS/JS로 스타벅스 웹사이트 만들기

 

개요

 

프로젝트명 : HTML/CSS/JS로 스타벅스 웹사이트 만들기

강의 : 패스트캠퍼스 프론트엔드

분류 : 클론코딩

주요 강의 내용

- html : basic html + font, favicon

- css : basic css, 가상 클래스, bem

- js : basic js, swiper(슬라이드), toggle, gsap.to(순차적 애니메이션), Youtube iframe APII 등

사용 툴 : HTML, CSS, JavaScript

 

패스트캠퍼스 강의를 정리한 내용으로, 개인공부 후 기록하기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.

 


DAY 1
: Toggle & Youtube iframe API

 

 

Toggle

* view

 

before
after

 

토글 버튼을 누르면 프로모션 부분을 없애거나 나오도록 제어한다.


* html code

<!-- Notice --> <section class="notice"> <div class="notice-line"> <div class="bg-left"></div> <div class="bg-right"></div> <div class="inner"> <!-- Inner Left --> <div class="inner__left"> <h2>공지사항</h2> <div class="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <a href="javascript:void(0)">크리스마스 & 연말연시 스타벅스 매장 영업시간</a> </div> <div class="swiper-slide"> <a href="javascript:void(0)">[당첨자 발표] 2022 스타벅스 플래너 영수증 이벤트</a> </div> <div class="swiper-slide"> <a href="javascript:void(0)">[당첨자 발표] 뉴이어 전자영수증 이벤트</a> </div> <div class="swiper-slide"> <a href="javascript:void(0)">스타벅스커피 코리아 애플리케이션 안내</a> </div> </div> </div> <a href="javascript:void(0)" class="notice-line__more"> <div class="material-icons">add_circle</div> </a> </div> <!-- Inner Right --> <div class="inner__right"> <h2>스타벅스 프로모션</h2> <div class="toggle-promotion"> <div class="material-icons">upload</div> </div> </div> </div> </div>
<!-- Rewards --> <section class="rewards"> <div class="bg-left"></div> <div class="bg-right"></div> <div class="inner"> <div class="btn-group"> <div class="btn btn--reverse sign-up">회원가입</div> <div class="btn sign-in">로그인</div> <div class="btn gift">e-Gift 선물하기</div> </div> </div> </section>

 

* js code

// Notice -> Toggle (클릭 시 숨김/보임 처리) const promotionEl = document.querySelector('.promotion'); const promotionToggleBtn = document.querySelector('.toggle-promotion'); let isHidePromotion = false; promotionToggleBtn.addEventListener('click', function() { isHidePromotion = !isHidePromotion if(isHidePromotion) { // 숨김 처리 promotionEl.classList.add('hide'); } else { // 보임 처리 promotionEl.classList.remove('hide'); } });

 

버튼을 클릭하면 / addEventListener('click')

-> boolean 값 변경

& classList.add() class 값으로 'hide' 추가 (css로 class 값 제어하기 위함)

-> 다시 클릭하면 classList.remove() class 값으로 'hide' 제거

 


*css

.notice .promotion.hide { height: 0; }

 

만약 class 값으로 hide 가 있다면 숨김(height=0) 처리를 한다.

 

api를 사용해서 웹에 유튜브 영상을 삽입한다.


* html code

<!-- Youtube Video --> <section class="youtube"> <div class="youtube__area"> <div id="player"></div> </div> <div class="youtube__cover"></div> </section>

 

*css code

/* YOUTUBE VIDEO */ .youtube { position: relative; height: 700px; background-color: #333; overflow: hidden; } .youtube .youtube__area { width: 1920px; position: absolute; left: 50%; margin-left: calc(1920px/-2); top: 50%; margin-top: calc(1920px*9/16/-2); } .youtube .youtube__area::before { /* 가상 요소 선택자 */ content: ""; 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, 0.3); top: 0; left: 0; width: 100%; height: 100%; position: absolute; } #player { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }

 

** 영상 16:9 비율을 제어해주는 게 핵심

youtube__area 에 원하는 넓이를 설정하고, 자식 요소 padding-to:56.25% 설정하면 16:9 비율이 된다.

 


* js code

// 2. This code loads the IFrame Player API code asynchronously. var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // 3. This function creates an <iframe> (and YouTube player) // after the API code downloads. function onYouTubeIframeAPIReady() { new YT.Player('player', { videoId: 'An6LvWQuj_8', // 최초 재생할 유튜브 영상 ID playerVars: { autoplay: true, // 자동 재생 유무 loop: true, // 반복 재생 유무 playlist: 'An6LvWQuj_8' // 반복 재생할 유튜브 영상 ID 목록 }, events: { onReady: function(event) { event.target.mute() // 음소거 } } }); }

 

youtube.js 만들어서 따로 저장

 

- function onYouTubeIframeAPIReady() 는 구조 그대로 써야한다.

 

- videoId: 실행시킬 유튜브 id 값, 영상 url에 있음.

예) https://www.youtube.com/embed/VIDEO_ID

 

- 안에 'player'에 대한 매개변수는 playerVars 속성에 추가할 수 있다.

 

 

YouTube 내장 플레이어 및 플레이어 매개변수  |  YouTube IFrame Player API  |  Google Developers

YouTube 내장 플레이어 및 플레이어 매개변수 개요 이 문서에서는 애플리케이션에 YouTube 플레이어를 삽입하는 방법을 설명하고 YouTube 내장 플레이어에서 사용할 수 있는 매개변수를 정의합니다. I

developers.google.com

다양한 매개변수는 위 링크에서 확인 가능하다.

 


* 참조문서

 

iframe 삽입에 대한 YouTube Player API 참조 문서  |  YouTube IFrame Player API  |  Google Developers

Embed a YouTube player in your application.

developers.google.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.