더북(TheBook)

mousedown 이벤트가 발생할 때 시작점 좌표를 startCoord 변수에 [x좌표, y좌표] 형태로 저장합니다.

mouseup 이벤트가 발생할 때 끝점 좌표를 endCoord 변수에 [x좌표, y좌표] 형태로 저장합니다.

startCoordendCoord로 좌표 차이를 구합니다. x 좌표가 바뀐 양(endCoord[0] - startCoord[0])은 diffX 변수에, y 좌표가 바뀐 양(endCoord[1] - startCoord[1])은 diffY 변수에 저장합니다.

마우스가 움직인 각도는 isUnder45 변수에 저장합니다. 왼쪽과 오른쪽 영역은 움직인 각도가 ±45도보다 작은 경우로 diffX 변수의 절댓값이 diffY 변수의 절댓값보다 작습니다(실제로 그런지 임의의 시작점과 끝점을 넣어 계산해 보세요). 절댓값은 Math.abs() 메서드로 구합니다. Math.abs()는 인수로 넣은 수의 절댓값을 반환하는 메서드로, -5를 넣으면 5가 나옵니다.

왼쪽 영역은 diffX 변수의 절댓값이 0보다 작고, 오른쪽 영역은 diffX 변수의 절댓값이 0보다 크므로 왼쪽과 오른쪽도 구분할 수 있습니다. diffY 변수의 절댓값이 diffX 변수의 절댓값보다 크거나 같으면(!isUnder45) 위쪽과 아래쪽이 됩니다. 위쪽은 diffY가 0보다 작고, 아래쪽은 diffY 변수가 0보다 크므로 위쪽과 아래쪽도 구분할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.