Korean_hamster
지현의 개발자 성장과정
Korean_hamster
전체 방문자
오늘
어제
  • 분류 전체보기 (122)
    • Front-End Developer (79)
      • Project (12)
      • HTML (8)
      • CSS (17)
      • Computer Science (9)
      • JavaScript (20)
      • React (13)
    • 이런저런 생각 (7)
    • 주간 성장회고 (24)
    • English (0)
    • 리뷰 (2)
    • Books (5)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • js
  • 비전공자개발자
  • flex
  • fetch
  • CS
  • 깃
  • 깃헙
  • HTML
  • 프론트앤드
  • 멋쟁이사자처럼
  • 비전공개발자
  • 라우터
  • 반응형웹
  • 리액트
  • 멋사
  • sass
  • CSS
  • 면접관님
  • AtomicHabits
  • 프론트앤드스쿨

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Korean_hamster

지현의 개발자 성장과정

Front-End Developer/JavaScript

누구나 애니메이션 만드는 공식

2022. 5. 18. 22:28

애니메이션 만드는 공식

one-way 애니메이션을 만드는 공식을 알아보자.

 

one-way 애니메이션이란?

A→B처럼 한방향으로 흘러가는 애니메이션

 

예를들어 아래와 같은 경우가 있겠다.

  • 투명도를 0 → 1 로 만들고싶을 때
  • margin left 10px → 300px
  • font size가 15px → 30px

모든것은 세가지 기본단계의 원리만 알면 된다.

첫번째

  1. 시작스타일
  2. 최종스타일

을 CSS로 만들어놓는다.

두번째

자스로 내가 원할 때 최종스타일로 변하라고 코드를 짠다

세번째

시작스타일에 transition을 추가한다.


예제 1

모달창이 toggle 될 때 transition 주기

 

첫번째 단계 

시작스타일 만들기

.black-bg {
  visibility: hidden;
  opacity: 0;
}

 

최종스타일 만들기

.show-modal {
  visibility: visible;
  opacity: 1;
}

주의점: 이 때 visibility가 아닌 display를 적용하면 애니메이션이 먹지않는다. 그냥외우자

 

두번째 단계

자스로 내가 원할 때 최종스타일로 변하라고 코드짜기

      document.querySelector('#login').addEventListener('click', function () {
        document.querySelector('.black-bg').classList.add('show-modal');
      });

      document.querySelector('#close').addEventListener('click', function () {
        document.querySelector('.black-bg').classList.remove('show-modal');
      });

'show-modal'클래스가 add되었다가 remove되었다가.

 

세번째 단계

 

시작스타일에 transition을 추가한다.

.black-bg {
  visibility: hidden;
  opacity: 0;
  transition: all 1s;
}

 


완성본

 


응용해본다면

 

위에서 아래로 슬라이드처럼 내려오기,

왼쪽에서 오른쪽으로 이동하기,

서브메뉴가 접히는 애니메이션(height, overflow:hidden 적용해야함) 등등을 만들 수 있다.

저작자표시 (새창열림)

'Front-End Developer > JavaScript' 카테고리의 다른 글

(JS기초)변수의 할당, 선언, 범위  (0) 2022.05.22
event listener사용해서 로그인창 구현해보기  (1) 2022.05.19
함수: 기본중의 기본 정리하기  (0) 2022.05.18
preventDefault속성으로 우클릭 제어하기  (0) 2022.05.16
(DOM)click이벤트로 HTML요소 텍스트와 CSS스타일 변경하기  (0) 2022.05.16
    Korean_hamster
    Korean_hamster
    Keep pushing myself to the limits

    티스토리툴바