테스트 사이트 - 개발 중인 베타 버전입니다

css 애니메이션 채택완료

덤벙덤벙 5년 전 조회 4,116

 

이 사진을 이용해서 날아다니는 새 애니메이션을 홈페이지 배경에 적용하고 싶은데 css 코드가 안 먹히는것 같아요 ㅠ 도움 부탁드립니다 

 

html 소스 

</p>

<p>    <div class="bird-container bird-container--one">

        <div class="bird bird--one"></div>

    </div>

    

    <div class="bird-container bird-container--two">

        <div class="bird bird--two"></div>

    </div>

    

    <div class="bird-container bird-container--three">

        <div class="bird bird--three"></div>

    </div>

    

    <div class="bird-container bird-container--four">

        <div class="bird bird--four"></div>

    </div>

   

 

 

css 소스 

 

 </p>

<p>.bird {

    background-image: url(<a href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/174479/bird-cells-new.svg);" target="_blank" rel="noopener noreferrer">https://s3-us-west-2.amazonaws.com/s.cdpn.io/174479/bird-cells-new.svg);</a>

    background-size: auto 100%;

    width: 88px;

    height: 125px;

    will-change: background-position;

    

    animation-name: fly-cycle;

    animation-timing-function: steps(10);

    animation-iteration-count: infinite;</p>

<p>    &--one {

        animation-duration: 1s;

        animation-delay: -0.5s;        

    }

    

    &--two {

        animation-duration: 0.9s;

        animation-delay: -0.75s;

    }

    

    &--three {

        animation-duration: 1.25s;

        animation-delay: -0.25s;

    }

    

    &--four {

        animation-duration: 1.1s;

        animation-delay: -0.5s;

    }</p>

<p>}</p>

<p>.bird-container {

    position: absolute;

    top: 20%;

    left: -10%;

    transform: scale(0) translateX(-10vw);

    will-change: transform;

    

    animation-name: fly-right-one;

    animation-timing-function: linear;

    animation-iteration-count: infinite;

    

    &--one {

        animation-duration: 15s;

        animation-delay: 0;

    }

    

    &--two {

        animation-duration: 16s;

        animation-delay: 1s;

    }

    

    &--three {

        animation-duration: 14.6s;

        animation-delay: 9.5s;

    }

    

    &--four {

        animation-duration: 16s;

        animation-delay: 10.25s;

    }

    

}</p>

<p>@keyframes fly-cycle {

    

    100% {

        background-position: -900px 0;

    }

    

}</p>

<p>@keyframes fly-right-one {

    

    0% {

        transform: scale(0.3) translateX(-10vw);

    }

    

    10% {

        transform: translateY(2vh) translateX(10vw) scale(0.4);

    }

    

    20% {

        transform: translateY(0vh) translateX(30vw) scale(0.5);

    }

    

    30% {

        transform: translateY(4vh) translateX(50vw) scale(0.6);

    }

    

    40% {

        transform: translateY(2vh) translateX(70vw) scale(0.6);

    }

    

    50% {

        transform: translateY(0vh) translateX(90vw) scale(0.6);

    }

    

    60% {

        transform: translateY(0vh) translateX(110vw) scale(0.6);

    }

    

    100% {

        transform: translateY(0vh) translateX(110vw) scale(0.6);

    }

    

}</p>

<p>@keyframes fly-right-two {

    

    0% {

        transform: translateY(-2vh) translateX(-10vw) scale(0.5);

    }

    

    10% {

        transform: translateY(0vh) translateX(10vw) scale(0.4);

    }

    

    20% {

        transform: translateY(-4vh) translateX(30vw) scale(0.6);

    }

    

    30% {

        transform: translateY(1vh) translateX(50vw) scale(0.45);

    }

    

    40% {

        transform: translateY(-2.5vh) translateX(70vw) scale(0.5);

    }

    

    50% {

        transform: translateY(0vh) translateX(90vw) scale(0.45);

    }

    

    51% {

        transform: translateY(0vh) translateX(110vw) scale(0.45);

    }

    

    100% {

        transform: translateY(0vh) translateX(110vw) scale(0.45);

    }

    

}</p>

<p>
 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
bob
5년 전

적용해 보니 잘 돌아가네요. (이하 CSS 변환)

 

.bird {
  background-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/174479/bird-cells-new.svg);
  background-size: auto 100%;
  width: 88px;
  height: 125px;
  will-change: background-position;
  animation-name: fly-cycle;
  animation-timing-function: steps(10);
  animation-iteration-count: infinite;
}
.bird--one {
  animation-duration: 1s;
  animation-delay: -0.5s;
}
.bird--two {
  animation-duration: 0.9s;
  animation-delay: -0.75s;
}
.bird--three {
  animation-duration: 1.25s;
  animation-delay: -0.25s;
}
.bird--four {
  animation-duration: 1.1s;
  animation-delay: -0.5s;
}

.bird-container {
  position: absolute;
  top: 20%;
  left: -10%;
  transform: scale(0) translateX(-10vw);
  will-change: transform;
  animation-name: fly-right-one;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
.bird-container--one {
  animation-duration: 15s;
  animation-delay: 0;
}
.bird-container--two {
  animation-duration: 16s;
  animation-delay: 1s;
}
.bird-container--three {
  animation-duration: 14.6s;
  animation-delay: 9.5s;
}
.bird-container--four {
  animation-duration: 16s;
  animation-delay: 10.25s;
}

@keyframes fly-cycle {
  100% {
    background-position: -900px 0;
  }
}
@keyframes fly-right-one {
  0% {
    transform: scale(0.3) translateX(-10vw);
  }
  10% {
    transform: translateY(2vh) translateX(10vw) scale(0.4);
  }
  20% {
    transform: translateY(0vh) translateX(30vw) scale(0.5);
  }
  30% {
    transform: translateY(4vh) translateX(50vw) scale(0.6);
  }
  40% {
    transform: translateY(2vh) translateX(70vw) scale(0.6);
  }
  50% {
    transform: translateY(0vh) translateX(90vw) scale(0.6);
  }
  60% {
    transform: translateY(0vh) translateX(110vw) scale(0.6);
  }
  100% {
    transform: translateY(0vh) translateX(110vw) scale(0.6);
  }
}
@keyframes fly-right-two {
  0% {
    transform: translateY(-2vh) translateX(-10vw) scale(0.5);
  }
  10% {
    transform: translateY(0vh) translateX(10vw) scale(0.4);
  }
  20% {
    transform: translateY(-4vh) translateX(30vw) scale(0.6);
  }
  30% {
    transform: translateY(1vh) translateX(50vw) scale(0.45);
  }
  40% {
    transform: translateY(-2.5vh) translateX(70vw) scale(0.5);
  }
  50% {
    transform: translateY(0vh) translateX(90vw) scale(0.45);
  }
  51% {
    transform: translateY(0vh) translateX(110vw) scale(0.45);
  }
  100% {
    transform: translateY(0vh) translateX(110vw) scale(0.45);
  }
}
 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

덤벙덤벙
5년 전
감사합니다 ㅠㅠㅠㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

이건 css가 아니라 scss같네요 둘은 엄연히 다른겁니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

자바스크립트로 타임걸어 돌리면 간단 하겟는데요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인