問題2:レインボーなボタンを作ろう
今回はhover時にレインボーカラーになるボタンを作ってみましょう!
色は何色を使ってもらってもいいですが、一応参考として載せときます。
赤:#E7484F、黄:#FCED00、緑:#009E4F、青:#00AAC3、紫:#732982
色は何色を使ってもらってもいいですが、一応参考として載せときます。
赤:#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は初期値ではリピートするので後ろから同じものが追いかけてくるので連続して見えるのです。
ログインして解答を見る
完了にする!
活動記録をTweetする