CSSanimateの作り方
CSSanimateとは
CSSanimateとは、jQueryやJSライブラリを使わずにwebサイトに動的な動きをプラスするCSS3の技術である
@keyframesについて
CSSanimateには@keyframesを使います
sample.css
@keyframes free_name{
/* 適当な名前でもOK、
日本語も使えるけどあまり使わない方がいい */
0%{
/* アニメーションのはじめ */
}
100%{
/* アニメーションの終わり */
}
}
free_nameの部分はどんな名前でもいい
0%がアニメーションの始まり
100%がアニメーションの終わりと覚えよう
これを実際に動かすにはanimation
というプロパティが必要になる下ではboxとい名前のクラスにかけて見る
sample.css
.box{
animation:free_name 5s ease -2s infinite alternate;
}
右から
-
@keyframes
の横に書いてあるanimation-name
の値、 - どのくらいの時間をかけて再生をするのか
animation-duration
の値、 -
animation-timing-function
の値、 - どのくらい時間が経ったらアニメーションを発動するのか
animation-delay
の値、 -
animation-iteration-count
の値、 -
animation-direction
の値
をスペースで区切って指定する
試しに作ってみよう
index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>test</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="box">
</div>
</body>
</html>
style.css
.box{
background-color: red;
animation:anime 1s ease-in-out 0s infinite alternate;
height: 50px;
}
@keyframes anime{
0%{width:10px}
100%{width:200px}
}
するとこいう風に動く
Undertaleのような RPGのような体力ゲージのようなアニメーションを作ることができる。
@keyframes anime
の部分でアニメーションを指定。はじめは横の長さが10px
だが、最後は200px
になるアニメーションを1s
かけて再生する。
ease-in-out
で車のように加速して減速するするようにしてある。この部分をease-out
にするとだんだんと高速に、ease-in
にするとだんだんと減速していく。
infinite
で無限に再生してalternate
で行ったり来たりする。
こんな感じ簡単にできるしアレンジを加えることもできる。