freeCodeCamp/curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/change-animation-timing-wit...

2.7 KiB
Raw Blame History

id challengeType videoUrl forumTopicId title
587d78a8367417b2b2512ae7 0 https://scrimba.com/c/cJKvwCM 301045 使用关键字更改动画定时器

Description

在 CSS 动画里,animation-timing-function 规定动画的速度曲线。速度曲线定义动画从一套 CSS 样式变为另一套所用的时间。如果要描述的动画是一辆车在指定时间内(animation-duration)从 A 运动到 B那么 animation-timing-function 表述的就是车在运动中的加速和减速等过程。 已经有了很多预定义的值可以直接使用于大部分场景。比如,默认的值是 ease,动画以低速开始,然后加快,在结束前变慢。其它常用的值包括 ease-out,动画以高速开始,以低速结束;ease-in,动画以低速开始,以高速结束;linear,动画从头到尾的速度是相同的。

Instructions

给 id 为 ball1ball2 的元素添加 animation-timing-functionball1 赋值为 linearball2 赋值为 ease-out。它们的 animation-duration 都为 2 秒,注意观察它们在开始和结束时的不同。

Tests

tests:
  - text: 'id 为 <code>ball1</code> 的元素的 <code>animation-timing-function</code> 属性值应该为 linear。'
    testString: const ball1Animation = $('#ball1').css('animation-timing-function').replace(/\s/g, '');assert(ball1Animation == 'linear' || ball1Animation == 'cubic-bezier(0,0,1,1)');
  - text: 'id 为 <code>ball2</code> 的元素的 <code>animation-timing-function</code> 属性值应该为 ease-out。'
    testString: const ball2Animation = $('#ball2').css('animation-timing-function').replace(/\s/g, ''); assert(ball2Animation == 'ease-out' || ball2Animation == 'cubic-bezier(0,0,0.58,1)');

Challenge Seed

<style>

  .balls {
    border-radius: 50%;
    background: linear-gradient(
      35deg,
      #ccffff,
      #ffcccc
    );
    position: fixed;  
    width: 50px;
    height: 50px;
    margin-top: 50px;
    animation-name: bounce;
    animation-duration: 2s;
    animation-iteration-count: infinite;
  }
  #ball1 { 
    left:27%;
    
  }
  #ball2 { 
    left:56%;
    
  }

@keyframes bounce {
  0% {
    top: 0px;
  } 
  100% {
    top: 249px;
  }
} 

</style>

<div class="balls" id="ball1"></div>
<div class="balls" id="ball2"></div>

Solution

// solution required