Example

[E-HTML&CSS] 애니메이션 예시

송기동 2023. 8. 16. 10:36
728x90

ani_transition

css 코드

.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  border: 1px solid black;
  margin: 20px auto;

  /* TODO: 애니메이션 추가 */
  /* transition-property: 애니메이션 효과를 부여할 속성 나열 */
  /* 사용법 : transition-property: 속성1, 속성2 ... */
  transition-property: width, height;
  /* 사용법 : transition-duration: 지속시간1, 지속시간2 ... */
  /* 지속시간 : 애니메이션 효과를 지속할 시간 
    s(second) : 초, m(minutes) : 분, h(hour) : 시간
  */
  transition-duration: 2s, 1s;
}

/* 박스에 마우스가 위로 올라가면 :hover */
.box:hover {
  width: 200px;
  height: 120px;
}

 

css 코드

.box {
  width: 100px;
  height: 100px;
  margin: 50px auto;
  border: 1px solid black;
  background-color: orange;
  /* TODO: 애니메이션 부여(축약식) */
  /* all : 모든 속성 */
  /* ease-in : 시작(천천히진행) - 끝(빨리진행) : 속도차이가 있는 효과 부여 */
  /* 사용법 : transition: 속성 속도차이효과 지속시간; */
  transition: all ease-in 2s;
}

.box:hover {
  width: 200px;
  height: 200px;
  background-color: red;
}

 

css 코드

div {
  width: 100px;
  height: 100px;
  margin: 30px;
  float: left;
}

.bg-tr {
  background-color: skyblue;
  /* TODO: 애니메이션 부여 */
  /* ease : 시작(천천히효과부여) 중간(빨리효과부여) 끝(천천히효과부여) */
  /* 사용법: transition: 속성 효과 지속시간(s,ms);s */
  transition: all ease 1s;
}

/* 1st 박스에 마우스 위로 */
.bg-tr:hover {
  background-color: blue;
}

.border-tr {
  background-color: orange;
  /* linear : 등속, 시작 - 중간 - 끝 모두 속도가 같음 */
  transition: all linear 1s;
}

/* 2st 박스에 마우스 위로 */
.border-tr:hover {
  background-color: red;
  border-radius: 50%;
}

ani_rotate

css 코드

/* 전체 div */
#container {
  width: 200px;
  margin: 30px auto;
}

/* 애니메이션 효과 부여 대상 */
img {
  border: 1px solid #cccccc;
  border-radius: 50%;
  /* TODO: 애니메이션 효과 부여(함수 사용) */
  animation: rotateBear 2.5s infinite;
}

/* css 함수 */
/* @keyframes 함수명 */
/* from {} : 최초 실행 위치 */
/* 50% {} : 중간 실행 위치 */
/* to {} : 마지막 실행 위치 */
@keyframes rotateBear {
  /* TODO: 음수 : 왼쪽으로 회전, 양수: 오른쪽으로 회전 */
  /* TODO: rotateX(도(0~360)) : x축을 기준으로 회전 */
  /* TODO: rotateY(도(0~360)) : y축을 기준으로 회전 */
  /* TODO: perspective(픽셀) : 원근감 */
  /* 사용법 : transform: perspective(위치) rotateY(0도~360도); */
  from {
    transform: perspective(200px) rotateY(0deg);
  }
  50% {
    transform: perspective(200px) rotateY(-180deg);
  }
  to {
    transform: perspective(200px) rotateY(-360deg);
  }
}

ani_translate

css 코드

/* 전체 div(부모 div) */
#container {
  width: 800px;
  height: 200px;
  margin: 20px auto;
}

/* 1st, 2nd, 3rd 박스들(자식 div) */
.origin {
  width: 100px;
  height: 100px;
  border: 1px solid black;
  float: left;
  margin: 40px;
}

/* 손자 div들 */
.origin > div {
  width: 100px;
  height: 100px;
  background-color: orange;
}

/* TODO: 애니메이션 부여 */
/* 1st 손자 div : #movex 에 마우스가 올라 갔을 때*/
#movex:hover {
  /* 이동 효과 부여 */
  /* 사용법 : transform: translateX(x좌표거리); */
  transform: translateX(50px);
}

/* 2nd 손자 div : #movey 에 마우스가 올라 갔을 때*/
#movey:hover {
  /* 이동 효과 부여 */
  /* 사용법 : transform: translateY(y좌표거리); */
  transform: translateY(50px);
}

/* 3rd 손자 div : #movexy 에 마우스가 올라 갔을 때*/
#movexy:hover {
  /* 이동 효과 부여 */
  /* 사용법 : transform: translate(x좌표거리, y좌표거리); */
  transform: translate(50px, 50px);
}

 

728x90