ログイン

問題2 レインボーなボタンを作ろう!

CSSAnimationの問題

CSSAnimation

レインボーなボタンを作ろう!

問題

今回はhover時にレインボーカラーになるボタンを作ってみましょう!
色は何色を使ってもらってもいいですが、一応参考として載せときます。
赤:#E7484F、黄:#FCED00、緑:#009E4F、青:#00AAC3、紫:#732982

自分の環境に書くコード

              <div class="btn">ここをクリック</div>
¥HTML¥
            
              .btn{
  width: 200px;
  height: 50px;
  background-color: #333333;
  cursor: pointer;
  color: #fff;
  text-align: center;
  line-height: 50px;
}
¥CSS¥
            

期待する画面

ログインして解答を見る
コードのアイコン

解答ソースコード

              .btn:hover{
  background: linear-gradient(to right,#E7484F,
  #E7484F 20%,
  #FCED00 20%,
  #FCED00 40%,
  #009E4F 40%,
  #009E4F 60%,
  #00AAC3 60%,
  #00AAC3 80%,
  #732982 80%,
  #732982 100%,
  #E7484F 100%);
  animation: slider 3s linear infinite;
}
@keyframes slider {
  to{
    background-position:200px;
  }
}
¥CSS¥
            
答えのアイコン

解説

今回の肝は、@keyframesにtoを使っている点だと思います。toは英語のfromとtoのtoと同じ意味です。日本語言うと〜から〜までの〜までに当たります。つまりtoに書き込まれた内容に向かってアニメーションされるということです。なのでbackground-positionはそのままの意味で背景の位置を変更してくれます。そしてbackgroundは初期値ではリピートするので後ろから同じものが追いかけてくるので連続して見えるのです。
完了にする!
LINEの友達追加でお役立ち動画をGET!!