반응형
How?
특정 키를 누르면 해당 키값을 attribute로 가지는 오디오가 재생된다
Solution
document.addEventListener('keydown', (e)=>{
let audio = document.querySelector(`audio[data-key="${e.keyCode}"]`);
let key = document.querySelector(`div[data-key="${e.keyCode}"]`);
if(!audio) return;
audio.currentTime = 0; // 메모!
audio.play();
key.classList.add('playing');
})
function removeTransition(e){
if (e.propertyName !== 'transform') return; //propertyName???
e.target.classList.remove('playing');
}
const keys = document.querySelectorAll('.key');
keys.forEach(key => key.addEventListener('transitionend', removeTransition));
TIL (Today I Llearned🎉)
- Audio의 currentTime 속성
: currentTime은 오디오(및 비디오)의 재생 지점을 뜻한다. 값이 0일 경우 파일의 처음부터 시작한다 - event의 propertyName 속성
: 해당 객체의 css 속성을 가져온다 - addEventListener에서 transitioned 이벤트
: 해당 요소에 변화가 완료되면 이벤트 실행
반응형
'📍 Front-End > 🜸 JavaScript' 카테고리의 다른 글
[JavaScript30/Day-3] Update CSS Variables with JS (0) | 2021.07.16 |
---|---|
[JavaScript30/Day-2] JS and CSS Clock (0) | 2021.07.15 |
[자바스크립트] 호이스팅이 뭘까 ,, (Hoisting!!!!!!!) (0) | 2021.07.13 |
[자바스크립트] append()와 appendChild()의 차이 (0) | 2021.07.13 |
[자바스크립트] DOMContentLoaded와 load의 차이 (0) | 2021.07.08 |
댓글