티스토리 뷰
이번에는 'Dev Ed' 유튜브에 있는 내용 중 Javascirpt Tutorial 중 하나인 Build A Mysic App With Javascript 를 진행하였습니다.
각 버튼을 누르면 사전에 저장해 놓은 소리가 나면서 간단한 jump animation 이 실행되는 예제입니다. 음이 들어간 예제를 해보니 더 재미있고 어떤 방향의 애플리케이션을 만들어 봐야겠다는 생각까지 들게 되네요!
HTML
HTML 구성은 매우 간단합니다. header에 h1 tag와 p tag 만 사용하여 간단하게 구성하였습니다. 그리고 각 버튼은 div를 이용하여 구성하고 div 안에 재생할 음악을 audio에 담습니다.
CSS
공이 튀어 오르는 animation CSS는 @keyframes jump {}를 이용합니다. animation 진행도를 나누어 원하는 위치를 부여합니다.
ex)

Javascript
버튼용 div에 chlick event를 줍니다. 본 실습에서는 각 버튼에 click event를 주지 않고 큰 div안에 다 묶어놓고 forEach로 진행하였습니다. 각 버튼에 audio까지 들어있으므로 audio만 따로 document.querySelectroAll을 하게 되면 Array 형태로 mp3 파일이 들어가 있는데 index를 이용하여 각 버튼에 맞는 sound를 집어넣어줍니다. forEach 또한 index 순으로 각 버튼에 함수를 지정하므로 sound에 index 부여하는 것이 가능하게 됩니다.
이제 각 버튼을 누르면 공이 튀어 오르는 animation을 부여합니다. animation은 style.animation='jump 1s ease'를 통해 1초 동안 ease의 강도로 jump 하는 animation을 부여합니다.

이렇게 Music App을 만들어 보았습니다. 추가적으로 클릭이 아니라 keyboard 입력으로 소리를 낼 수 있지 않을까 해서 예제를 변형해 보았습니다.
document.addEventListener('keydown', function(){}) 을 이용하여 각 키가 어떤 값을 갖는지 확인 후 그 값을 누르면 저장한 음이 나오게 했습니다. event.keyCode를 console.log에 출력하여 if 문을 통해 완성을 했네요.
이렇게 예제를 변형하다 보니 저만의 루프 스테이션을 만들어보고 싶어 졌습니다. 각 소리를 연주하고 저장하고 그 연주에 다른 연주를 쌓아가는 방식의 루프 스테이션은 이 예제를 응용하면 충분히 만들 수 있을 것 같습니다. 한번 만들어보고 무료 루프스테이션 앱을 배포해 봐야겠네요!
'독학' 카테고리의 다른 글
[파이썬] 현재 주식 시장은 거품일까? (0) | 2020.10.24 |
---|---|
[javascript독학] Loopstation app 만들기 (0) | 2020.06.24 |
[Javascript독학] meditation 앱 만들기 (0) | 2020.06.15 |
[Javascript독학] anime.js 사용하기 (0) | 2020.06.11 |
[그림독학] 애니 : 사랑은 비가 갠 뒤처럼 (0) | 2020.05.21 |
- Total
- Today
- Yesterday
- 책추천
- JS독학
- 수부지추천
- 파이썬
- 주식독학
- selenium
- 경매동향
- 상위노출프로그램
- flutter네이버커머스api
- 제로이드
- 네이버커머스api
- 파이썬독학
- 주식시장거품
- 인플레이션
- 경매참고자료
- GRBL
- 자바스크립트독학
- 주식분석
- 파이썬실전
- 눈시림없는선크림
- 프로그래밍독학
- javascript독학
- 파이썬셀레니움
- 주식종목
- 책리뷰
- 그림독학
- CNC업그레이드
- javascript
- 웹앱독학
- 브리타정수기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |