대학교에서 웹사이트를 만들어보는 과제를 받았다.
한번도 만들어 본 적 없는 나에게 떨어진 커다란 시련...!
완성시키는데 의의를 두고 마구마구 두들겼다
수업을 같이 듣는 팀원인 성호씨의 기획대로 도안을 받았다.
intro page는 처음 로딩시간에 보여지게 만들려고 하였으나
프로젝트 파일자체가 작고, 서버에서 처리하는게 없으니 로딩시간이 길지 않아
일부러 setTimeout() 을 사용하여 시간을 4초 걸리게 하였다...😅
움직이는 사각형을 물방울 모양의 화면으로만
보이게 하여 물이 흐르는 것처럼 만들어져있다.
전체적으로 컨트롤 할 수 있는 App class를 만들고
this.waveGroup = new WaveGroup();
this.waterdrop = new Waterdrop(230, 1000, 30,'red',0);
로서 안의 물결과 물방울을 생성한다.
우선 물결은 Point객체의 집합으로 이루어져있고 점들을
quadraticCurveTo를 통해 물결처럼 보이게 이어준다.
그 후 물방울이 떨어질 때,
액체의 종류는 부끄럽지만 집합으로 순서를 정하는 방법을 사용했고
let material = [ //ball color [ '<span class="water">●</span>water ', '<span class="coffeee">●</span>espresso ', '<span class="milk">○</span>milk ', '<span class="milkform">●</span>milkform ', '<span class="caramel">●</span>caramel ', '', ], //americano [ '<span class="coffeee">●</span>espresso ', '', '', '<span class="water">●</span>water ', '','','', '', '', '', ], ]
wave의 색깔은 시작색과 끝색을 정하여 rgb를 나눠 원하는색에
도달하도록 만들었다.
for(let i=1;i<N;i++){ tmpR=Math.round(r-(r-mr)/N*i); tmpG=Math.round(g-(g-mg)/N*i); tmpB=Math.round(b-(b-mb)/N*i); array.push(`rgb(${tmpR}, ${tmpG}, ${tmpB})`) }
처음하는 프로젝트라 코드도 엉망이고 리펙토링을 할 수 없을 정도로
스파게티코드🍝가 만들어져 있었다...
이 프로젝트를 통해 공부해야할 로드맵을 만들 수 있었고
그 다음 공부할건 Dev21의 고양이검색사이트 만들기를 풀어보며
각각의 요소들을 컴포턴트화 시켜 각각의 기능이 분리할 수 있도록
만들어보고싶다!