일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가장작은자연수
- 자바스크립트 #메뉴만들기
- fade-in
- 문자열다루기
- 네트워크 #5G안터질때 #4G로바꾸는법 #5G를4G로 #5G를LTE로 #갤럭시5G변경
- 메뉴
- 자바스크립트
- todolist
- GIT
- React
- array #object #lodash #javascript
- ThemeProvider
- darkmode
- 동영상다운 #영상다운 #크롬웹스토어 #드래그되지않는 #클릭되지않는 #동영상
- 파비콘 #파비콘만들기 #포토샵파비콘
- fadeint
- 오류
- 윈도우10캡쳐 #윈도우10캡처 #윈도우10스크린샷 #캡쳐하기 #캡처하기 #스크린샷찍기 #캡쳐지연 #스크린샷지연
- list추가하기
- 요일구하는공식
- 슬라이드다운
- hover효과
- 요일구하기
- 좌우슬라이드
- 음악검색기능 #음악찾기기능 #음악찾기 #음악검색 #네이버음악검색 #다음음악검색 #멜론음악검색
- 리액트
- 카카오톡알림설정 #카톡알림설정
- 티스토리 #폰트변경 #꾸미기
- 프로그래머스
- 숫자게임만들기
- Today
- Total
잿꽃's posting Garden
버튼 클릭하면 물결처럼 원이 나타나는 효과(리플효과) 본문
버튼 클릭하면 물결처럼 원이 나타나는 효과를 만들어 보았다.
이런 기능 진짜 해보고 싶었는데 마침 유튜브의 '맛있는코딩'님의 영상에 이런 내용이... 정말 취향저격 영상밖에 없다...
원래 영상들 보면 배속해서 보는데 영상이 빨라서 정지 버튼 누르면서 보는 게 함정...
영상 보고 따라 만들어 봤는데 모르는 부분이 꽤 많았다. 사실 마우스에 대한 효과를 주는 것들을 배우지 않아서 대강 마우스의 x, y 값을 읽어와야 한다는 것만 알고 있기 때문에 공부의 필요성을 느끼긴 했다. 실제 실무에서 활용도가 어느 정도 될까 싶지만....
See the Pen Untitled by ssoa1111 (@ssoa1111) on CodePen.
필요한 계산식
왜 이런 식이 나오는지는 영상에 잘 나와있다.
원의 반지름 : Math.sqrt(w^2 + h^2) left : (마우스 clientX - 버튼 왼쪽 여백 - 원의 반지름) / 버튼 가로 길이 * 100 % top : (마우스 clientY - 버튼 위쪽 여백 - 원의 반지름) / 버튼 높이 * 100 % |
getBoundingClientRect()
내장 객체를 이용하여 x, y, width, height를 비구조 할당으로 가져온다.
Element.getBoundingClientRect() - Web API | MDN (mozilla.org)
가져온 값을 원의 반지름 공식에 적용한다.
setProperty()
CSS의 속성을 변수처럼 선언할 수 있다.
javascript : setProperty('이름', 값)
css에 전달할 때 value값에 : var(이름)
CSSStyleDeclaration.setProperty() - 웹 API | 증권 시세 표시기 (mozilla.org)
>> 이건 예시도 잘 되어있어서 여러 번 봐줄 필요가 있다.
clientX, clientY
이벤트를 매개변수로 e.clientX, e.clientY로 현재 요소 내의 마우스의 위치를 알 수 있다.
참고로 screenX, screenY로 스크린 기준으로 마우스 위치를 알 수 있다.
MouseEvent.clientX - Web API | MDN (mozilla.org)
setTimeout()
클릭할 때마다 효과를 나타내기 위한 setTimeout()
그전에 속성 값을 초기화하고 setTimeout()에서 속성 값을 넣어서 클릭할 때 초기화 > 실행이 가능하게 함
(setTimeout()을 이렇게도 쓸 수 있구먼...)
'WEB > JAVASCRIPT' 카테고리의 다른 글
임의의 년도의 1월 1일은 무슨 요일일까? (0) | 2022.05.21 |
---|---|
자바스크립트로 좌우 슬라이드 만들기 (0) | 2022.05.20 |
자바스크립트로 슬라이드 fade-in효과 만들기 (0) | 2022.05.19 |
자바스크립트로 메뉴 fade-in 효과 만들기 (0) | 2022.05.11 |
자바스크립트로 메뉴 dropdown - slidedown효과 만들기 (0) | 2022.05.10 |