スクロールしたら指定のサイズまで画像を縮小する方法

jQueryとCSSを使って、スクロールした時に、指定のサイズまで画像を縮小する方法をご紹介。

以下のようなお悩みを抱えている方の助けになれると思います!

  • 追尾ヘッダーに設置したロゴ画像を下スクロールしたときに、指定のサイズまで縮小させる方法やサンプルコードが知りたい
  • 指定のサイズまで画像をぬるっと縮小させるデモが見たい

それでは作り方、サンプルコードを見ていきましょう。

スクロールしたら指定のサイズまで画像を縮小するサンプルコード

デモ

See the Pen スクロールしたら指定のサイズまで画像を縮小する方法 by 石森裕也 (@yuyaphotograph) on CodePen.

HTML

HTML
<!-- ヘッダー -->
<header class="Header">
  <a href="#" class="Header-Logo">
    <img src="" alt="ロゴ画像">
  </a>
</header>
<!-- コンテンツ -->
<div class="Content"></div>
<div class="Content02"></div>

CSS

CSS
.Header{
  position: fixed;
  top: 0;
  padding-top: 24px;
  padding-bottom: 24px;
  width: 100%;
  background: #fff;
  z-index: 100;
}
.Header-Logo{
  margin-left: auto;
  margin-right: auto;
  width: 240px;
  display: block;
  transition: all 0.4s ease;
}
.Header-Logo.isSmall{
  width: 120px!important;
}
img{
  width: 100%;
  height: auto;
  display: block;
}

.Content{
  width: 100%;
  height: 1200px;
  background: #999;
}
.Content02{
  width: 100%;
  height: 1200px;
  background: #eee;
}

「isSmall」クラスがついたときの「Header-Logo」の横幅をスクロールしたときに縮小させたい値に指定してあげましょう。

ぬるっと画像が縮小する動きは、「transition: all 0.4s ease」で実現しています。

jQuery

jQuery
$(function(){
  $(window).scroll(function(){
    var obj = $('.Header-Logo');
    scroll = $(window).scrollTop();
    if (scroll > 1) {
      obj.addClass('isSmall');
    } else{
      obj.removeClass('isSmall');
    }
  })
});

次はこの記事!

【jQuery】スクロールして可視範囲に入ったら下線を引くアニメーションの作り方【jQuery】スクロールして可視範囲に入ったら下線を引くアニメーションの作り方 CSSのflexboxで横スクロールを実装する方法【CSS】flexboxで横スクロールを実装する方法 一定量スクロールしたら表示されるボタンを作る方法一定量スクロールしたら表示されるボタンを作る方法【jQuery、CSS】