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

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

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

スポンサーリンク

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

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

実装所要時間:15分程度

CSS,JavaScriptの記述内容

.block {
  position: relative;
  display: block;
  width: 768px;
  height: 100%;
  line-height: 0;
  overflow: hidden;
  margin: 50px auto 0;
}

.block img {
  width: 100%;
}

.block:after {
  content: "";
  position: absolute;
  top: -100%;
  left: -100%;
  transform: skew(30deg);
  width: 205%;
  height: 205%;
  background: #fff;
}

.active.block:after {
  top: 350%;
  left: -350%;
  transition: all 1s cubic-bezier(.645, .045, .355, 1);
}

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

実装のポイント

  • 1) 画像を囲むdivにwidthとposition:relative;を指定
  • 2) divのafterへ斜めにスライドさせる背景色をセット。色は画像があるセクションの背景色を指定。:afterはdisplay: block;でブロック要素へ。画像サイズに対して余分に覆うためにwidthとheightを200%以上に指定
  • 3) :afterへaddClass()でクラスactiveを付与して、topとleftの位置を移動させる
  • 4) ポイントはtransform: skew(30deg)で台形のように要素を傾斜変形させること。transitionでアニメーションをつけて、topとleftの位置が変わるので斜めに動いているように見える。after:のtopとleft、widthとheightは画像の比率、サイズによって調整する必要がある

スポンサーリンク