あなたのキモチ つなげるカタチ

TOP > CSS > 【CSS】画像の上で台形のカラーをスライドさせるカーテンアニメーション/CSS Curtain Sliding Background Color(Trapezoid)

【CSS】画像の上で台形のカラーをスライドさせるカーテンアニメーション/CSS Curtain Sliding Background Color(Trapezoid)

スポンサーリンク

コーディングテクニックの実装内容

画像の上で台形のカラーをスライドさせるカーテンアニメーションを紹介します。

実装所要時間:10分程度
難易度:初心者コーダーでも実装可能

CSS,JavaScriptの記述内容

.block {
  position: relative;
  width: 768px;
  overflow: hidden;
  margin: 70px auto 0;
}

.block:after {
  content: '';
  display: block;
  position: absolute;
  top: -10%;
  left: -10%;
  width: 120%;
  height: 120%;
  background: #55310e;
  transform: rotate(5deg);
  transition: all 1.5s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

.active.block:after {
  transform: rotate(5deg) translateX(100%);
  transition: all 1.5s cubic-bezier(0.645, 0.045, 0.355, 1) 0.8s;
}

@media screen and (max-width:640px){
  .block {
    width: 100%;
  }
}

実装のポイント

  • 1) imgタグを囲むdivに横幅とposition:relative;を指定
  • 2) divの:afterにスライドさせる背景色を指定。また、display: block;でブロック要素化。画像より大き目に覆い、top・leftにマイナスの値を指定して左上に設置する。
  • 3) divに.addClass()でクラスactiveを付与。クラスactiveが付与された:afterにtransform: rotate(5deg);で台形にする。translateX(100%)を指定して画像の右に移動させる
  • 4) transitionで台形の単色要素が右にスライドする動きをつける

スポンサーリンク