Moment 앱 따라하기
배경화면으로 쓰일 이미지를 랜덤으로 출력 위해 Math 내장객체에서 floor(), random() 메소드를 활용한다.
html 파일에서 body 요소를 가져온다.
- 웹브라우저 화면 전체를 이미지로 씌울 예정이므로 body를 통째로 가져온다.
1부터 시작하는 정수를 랜덤하게 뽑는 함수를 만든다.
- Math.random()은 1이하의 실수를 랜덤으로 반환한다.
- Math.floor()는 실수를 소수점 내림하여 정수 형태로 반환한다.
- 0부터 숫자가 반환되므로 더하기 1을 하여 숫자 1부터 변수로 지정되도록 한다.
- 배경사진의 개수가 3개라서 IMG_NUMBER 변수에 3을 담았다.
- 이미지 개수에 맞게 임의로 하나의 숫자를 뽑아서 해당 숫자의 파일명을 가진 이미지를 가져올 것이다.
랜덤으로 뽑힌 숫자랑 같은 이름의 이미지 파일을 호출한다.
- 랜덤으로 뽑은 숫자를 함수의 인자로 사용한다.
- new Image() 메소드를 사용하여 html에 <img>를 만드는데, 이는 우리가 출력할 <img src="">가 담긴다.
- <img src="">는 images 폴더에 있는 이미지 파일을 지정한다.
- 그 이미지 파일은 랜덤으로 가져와야 하므로 imgNumber 파라미터를 통해 랜덤 숫자를 받는다
- 배경사진이 원본 그대로 노출되면 웹브라우저에 맞지 않으므로, CSS를 통해 약간의 수정을 한다.
- 완성된 image 변수를 body에 자식요소로 추가한다
배경사진의 크기를 조절하고 동시에 애니메이션 효과를 준다.
- animation 속성을 사용하기 앞서 @keyframes를 작성한다.
- 투명도(opacity)를 0에서 1로 변화를 주어 자연스럽게 화면이 전환될 수 있게 한다.
- top, left 크기를 0로 하여 텍스트로 인해 비어있는 상단, 왼쪽 공간을 제거한다.
- 웹브라우저 화면 크기에 맞도록 width와 height 비율을 100%로 작성한다.
- 텍스트가 배경사진 앞에서 노출될 수 있도록 z-index 속성을 이용해 레이어 순서를 조절한다.
genRandom() 함수와 printImage() 함수를 순차적으로 실행시킨다.
- genRandom() 함수를 통해 랜덤으로 뽑은 숫자를 printImage() 함수의 인자로 사용한다
'코딩 연습 > Javascript' 카테고리의 다른 글
Array.filter() (0) | 2019.01.01 |
---|---|
JSON.parse(), forEach() (0) | 2018.12.31 |
조건부 삼항 연산자(conditional ternary operator) (0) | 2018.12.30 |
객체 안에 특정 함수를 속성으로 지정하기 (0) | 2018.12.07 |
함수를 변수에 지정하기 (0) | 2018.12.07 |