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

TOP > CSS > 【CSS】カーテンを開けるように画像の上に重ねたカラーを左右にスライドさせてから画像を表示するアニメーションの実装方法

【CSS】カーテンを開けるように画像の上に重ねたカラーを左右にスライドさせてから画像を表示するアニメーションの実装方法

この記事は2018年12月15日に公開した記事です。

現在とは状況が違う場合がありますのでご注意ください。

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

今回はカーテンアニメーションに関する内容です。カーテンを開けるように画像の上に重ねたカラーを左右にスライドさせてから画像を表示するアニメーションの実装方法を紹介します。

コーディングテクニックの使いどころ

スクロールをして画像が見えたらアニメーションを実行させるのが一般的な使い方となります。

実装難易度・必要なスキル

コーディングとjQueryの基礎的な知識があれば実務未経験のコーダー、マークアップエンジニア、Webデザイナー、エンジニア、副業の初心者など誰でも実装可能です。

実装所要時間は10分程度

CSS,JavaScriptの記述内容

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

.block:after,.block:before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  height: 102%;
  transition: transform 0.5s cubic-bezier(0.39, 0.575, 0.565, 1);
  background: #fff;
}

.block:before {
  width: 45%;
  left: -1%;
  transform-origin: left top;
}

.block:after {
  width: 65%;
  right: -1%;
  transform-origin: right top;
}
.active.block:before,.active.block:after {
  transform: scaleX(0);
}

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

実装のポイント

  • 1) imgタグを囲むdivに横幅とposition:relative;を指定
  • 2) divの:beforeにleft: -1%;を指定して画像の左側へ配置。divの:afterにright: -1%;を指定して画像の右側へ配置。
  • 3) divに.addClass()でクラスactiveを付与。クラスactiveが付与された:beforeと:afterをtransform: scaleX(0);で画像の端へ移動するように見せる。:beforeはtransform-origin: left top;で左方向へ、:afterはtransform-origin: right top;で右方向へ動かす

この記事を書いた人(著者情報)

片岡 学

カタチップ編集長。昭和生まれの30代でWeb業界歴は15年。プログラマー出身のWebデザイナー。現在はカタチップを運用しつつ事業会社でWEBメディアサイトのディレクター兼コーダーを担当。最近はSNSの運用にも業務範囲を拡大中です。

著者画像

スポンサーリンク