DETAIL NOTE

INTUITION DETAIL DESIGN BLOG

CSSで背景グラデーション+アニメーションで変化する背景色を実装

Webデザインのトレンドとして、背景やボタンなど各所にグラデーションを採用するというのがあります。
単色の背景では味気ないと感じた時などに試してみるとインパクトを加えることができるのでオススメです。
CSS3からグラデーションをCSSのみで表現できることができるようになったこともあり積極的にと入れる価値があると思います。また、アニメーションも合わせることでより目を引く背景をつくることが可能です。

ちなみに弊社のHPでも、フッター部分の背景が動くグラデーションになっている仕掛けを採用してます。

それでは、CSSのbackgroundプロパティlinear-gradientanimationを利用して背景グラデーション+アニメーションを実装していきましょう!

背景グラデーションをCSSで実装する方法

背景をグラデーションにするにはbackgroundプロパティliner-gradient関数を設定します。

このように、backgroundとlinear-gradient+色の指定をします。グラデーションの方向は、最初に指定した色(上)→最後に指定した色(下)へ変化していきます。

斜めにグラデーションさせる

グラデーションの角度を変更するためにはdegを加えて設定してあげます。

 

animationの基本

ここからは、背景グラデーションをanimetionでアニメーションするようにしていきます。まずはanimationの基本からみていきましょう。

animetionはキーフレームアニメーションを利用してアニメーションさせるときに、まとめて書いて設定することができきるプロパティになっています。

キーフレームアニメーションはアニメーションの変化する要素を指定するもので、animationと@keyframesで共通するanimetion-nameを設定して動作させます。

animationの書き方

animationは、
animation-name,animation-duration,animation-timing-function,animation-delay,animation-iteration-count,animation-direction;
このように、それぞれの値を区切って設定します。初期値のままでいいものは省略もできます。

animation-name

アニメーション名の指定をします。これを利用してanimetionとkeyframeを紐付けするので省略はできず任意のアニメーション名を設定する必要があります。

animation-duration

アニメーションが完了するまでの時間を指定します。初期値は0になっています。

animation-timing-function

アニメーションのタイミング・進行速度を設定します。ease、linear、ease-in、ease-out、ease-in-outから選ぶか、cubic-bezier(数値, 数値, 数値, 数値)で設定を自分ですることもできます。初期値はeaseになっています。

animation-delay

アニメーションの始まるまでの時間を設定します。初期値は0になっています。

animation-iteration-count

アニメーションを繰り返す回数を設定します。数値で指定するか、infinite(無限ループ)で指定します。初期値は1になっています。

animation-direction

アニメーションを交互に反転再生するかの設定です。normal,alternate,reverse,alternate-reverseから選択することができます。初期値はnormal

キーフレームアニメーションの書き方

@keyframes + 任意のanimetion-nameでanimetionとの紐付けをしてから、変化させたい要素を0%〜100%で書いていきます。

この場合だと、背景色をピンク→青→オレンジという順番で変化させるという設定になります。

グラデーションをアニメーションさせてみよう

ここから本題の背景グラデーション + アニメーションを実際に試していきましょう。

実際のコードはこのようにスタートの色のbackground-colorを設定しておいて、animationと@keyframesでアニメーションをさせます。


先ほどのコードを実装するとこのような動きになります。

斜めのグラデーションをアニメーションさせる

次はグラデーションを斜めにしてアニメーションさせてみましょう。

簡単に説明すると、3つの色を45度の角度でグラデーションさせてから、バックグラウンドのサイズを600%とオーバーサイズにすることで画面には1色がアップされて表示されます。
そのアップで表示されたものを、キーフレームアニメーションで背景ポジションを移動させることでグラデーションのアニメとなります。

背景画像にグラデーションアニメを合わせる

これまではグラデーションを16進数で指定していましたが、rgbaで透明度の調整をすることで他の背景画像と合わせて見せることができます。

html

htmlで画像を設定する要素と、グラデーションを設定する要素を用意します。

css

画像用のdivに背景画像を設定してグラデーション用のdivにグラデーションとアニメーションを設定します。そして、2つのdivが重なるようにposition: absolute;にします。

グラデーションカラーの透明度を80%にしているので下の画像にグラデーションアニメが重なっているように見えます。

便利ツール

CSS GRADIENT ANIMATOR


CSS GRADIENT ANIMATORではカラーを選択したり、スピードやグラデーションの角度などを設定することで簡単にCSSのコードを生成してくれます!

 

便利ツール使ってしまえば解決!と思われてしまうかもしれませんが、生成されたコードにどういう意味があるかなど基本的なことが分かっていた方がCSS3の理解力とスキルが増すので1度は最初から自分で書いてみることをオススメします!

 

 

次へ 投稿

前へ 投稿

© 2024 INTUITION DETAIL DESIGN