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

TOP > CSS > 【CSS】画像の上で光沢感のある演出を交えてカラーがスライドするカーテンアニメーションの実装方法/Curtain animation in which a glossy single color element slides on the image

【CSS】画像の上で光沢感のある演出を交えてカラーがスライドするカーテンアニメーションの実装方法/Curtain animation in which a glossy single color element slides on the image

スポンサーリンク

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

画像の上で光沢感のある演出を交えてカラーがスライドするカーテンアニメーションの実装方法を紹介します。

実装所要時間:10分程度

CSS,JavaScriptの記述内容

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

.block img {
  width: 100%;
  transition: 0.8s cubic-bezier(0.82, 0.01, 0.28, 0.99) 0.4s;
  opacity: 0;
}

.active.block img {
  opacity: 1;
}

.block:before {
  content: ' ';
  display: block;
  position: absolute;
  top: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  opacity: 1;
  background: #55310e;
  transition: 0.8s cubic-bezier(0.82, 0.01, 0.28, 0.99);
  transform: translateX(0%) skewX(0deg);
}

.active.block:before {
  opacity: 0;
  transform: translateX(100%) skewX(-20deg);
}

.block:after {
  content: ' ';
  display: block;
  position: absolute;
  top: 0;
  z-index: 2;
  width: 40%;
  height: 100%;
  opacity: 1;
  background: #fff;
  transition: 1s cubic-bezier(0.82, 0.01, 0.28, 0.99) 0.3s;
  transform: translateX(-120%) skewX(-10deg);
}

.active.block:after {
  opacity: 0;
  transform: translateX(180%) skewX(-30deg);
}

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

実装のポイント

  • 1) imgタグを囲むdivに横幅とposition:relative;を指定
  • 2) divの:beforeにスライドさせる単色を指定。:afterに光沢を指定
  • 3) divに.addClass()でクラスactiveを付与。クラスactiveが付与された:beforeをtransform: translateX(100%) skewX(-20deg)で要素を斜めにしながら画像の右側へ移動させる。0.3秒後にクラスactiveが付与された:afterをtransform: translateX(180%) skewX(-30deg);で要素を斜めにしながら画像の右側へ移動させる
  • 4) :before、:afterをopacity: 0で透明にする

スポンサーリンク