CSSだけでフェ―ドインのエフェクトを実装する方法

css

フェードインとは

透明な状態から、だんだん表示されていくエフェクトです。X軸、Y軸の動きも加えることで、カッコいい雰囲気になります。

@keyframesとanimationプロパティを使用

フェ―ドインを実装できると、サイトの雰囲気もずいぶん変わるかと思います。上下左右のバージョンを作ってみました。

サンプルをご覧ください。↓

fadein sample
www.take-note.net

HTMLコードは以下の通り。↓

 <div class="sample">
    <h4>左からフェ―ドイン</h4>
    <p class="left">サンプルです</p> 
 </div>
 
 <div class="sample">
   <h4>右からフェ―ドイン</h4>
   <p class="right">
   サンプルです
   </p> 
 </div>
 <div class="sample">
  <h4>上からフェ―ドイン</h4> 
   <p class="upper">
 サンプルです
 </p> 
 </div>
 <div class="sample">
  <h4>下からフェ―ドイン</h4>
   <p class="bottom">
 サンプルです
 </p> 

CSSコードは以下の通り。↓

@keyframes slide-left{
  0% {
  opacity:0;
transform:translateX(-50px);
   }
100% {
  opacity:1;
transform:translateX(0px);
}
}
@keyframes slide-right{
  0% {
  opacity:0;
transform:translateX(50px);
   }
100% {
  opacity:1;
transform:translateX(0px);
}
}
@keyframes slide-upper{
  0% {
  opacity:0;
transform:translateY(-50px);
   }
100% {
  opacity:1;
transform:translateX(0px);
}
}
@keyframes slide-bottom{
  0% {
  opacity:0;
transform:translateY(50px);
   }
100% {
  opacity:1;
transform:translateX(0px);
}
}
.sample{
  border-bottom: solid 1px gray;
}
p{
  width:300px;
  border: solid 1px gray;
  margin:50px auto;
  font-size: 30px;
  text-align: center;
}
.left{
  animation : slide-left 2s infinite;
}
.right{
  animation :slide-right 2s infinite;
}
.upper{
  animation: slide-upper 2s infinite;
}
.bottom{
  animation: slide-bottom 2s infinite;
}

詳細を見ていきましょう

@keyframesに名前を付けます。

今回は4パターン。左、右、上、下の順番で作成しました。

左からのフェードインのパターンを見てみましょう。CSSコードです。↓

@keyframes slide-left{
  0% {
  opacity:0;
transform:translateX(-50px);
   }
100% {
  opacity:1;
transform:translateX(0px);
}
}
.left{
  animation : slide-left 2s infinite;
}

@keyframesの名前を「slide-left」にしました。0%時にopacity:0;(非表示)、transform:translateX(-50px);(X軸方向に-50px)と指定してあります。

100%時にopacity:1(表示)、transform:translateX(0px);(X軸方向に0px)、となり、徐々に左側から文字や画像がフェードインしてくるように見える仕掛けです。

フェードインさせたい要素にclass指定する

以下の部分を、左側からフェードインさせたい要素に、class指定すればよいわけです。「2s」は「2秒かけてアニメーションを行う」、「infinite」は「アニメーションを無限に繰り返す」という指定です。秒数や回数はお好みで変えましょう。↓

.left{
  animation : slide-left 2s infinite;
}

サンプルでは、「サンプルです」という文字にclass指定してあります。↓

 <p class="left">サンプルです</p> 

もちろん画像などにも指定できます。

いかがでしたか?

簡単ですね!CSSだけでフェードインを実装し、動きのあるサイトの作成が可能になります。

フェードインについては、以下の記事も参考にどうぞ。↓

コメント