menu
menu

キーワード検索

 

最近の投稿

ヘッダーをトップに固定してスクロールでアニメーション

  • Labs

jQuery

こんにちは(・∀・)

今回はjQueryでヘッダーをトップに固定するスティッキーヘッダーと、スクロールするとそのヘッダーがCSSのアニメーションで拡大縮小するサンプルをご紹介します。

レスポンシブデザインに対応してます。

サンプル
HTML

jQueryを使用するのでHTMLの<head>内にjQuery 1.x snippetを読み込みます。
Google Hosted Libraries


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<header>
<p><img src="logo.png" alt="Webデザインラボ"></p>
</header>
CSS

header {
  position: absolute;
  background: #ccc;
  top: 0;
  width: 100%;
  height: 60px;
  border-bottom: none;
  box-shadow: 0 2px 4px #aaa;
}
    @keyframes anim1 {
          0% { height: 60px; }
      100% { height: 40px; }
    }
    @keyframes anim2 {
          0% { height: 40px; }
      100% { height: 60px; }
    }
    @keyframes anim3 {
          0% { width: 200px; height: 40px; }
      100% { width: 100px; height: 20px; }
    }
    @keyframes anim4 {
          0% { width: 100px; height: 20px; }
      100% { width: 200px; height: 40px; }
    }
.fixed {
  position: fixed;
  height: 40px;
  animation: 0.5s forwards anim1;
  text-align: center;
}
.fixed2 {
  position: fixed;
  height: 60px;
  animation: 0.2s backwards anim2;
  text-align: center;
}
.fixed section h2 img {
  width: 100px;
  height: 20px;
  animation: 0.5s forwards anim3;
}
.fixed2 section h2 img {
  width: 200px;
  height: 40px;
  animation: 0.2s backwards anim4;
}
JavaScript

$(function() {
var obj = $('header'),
offset = obj.offset();
$(window).scroll(function () {
if($(window).scrollTop() > offset.top) {
obj.removeClass('fixed2');
obj.addClass('fixed');
} else {
obj.removeClass('fixed');
obj.addClass('fixed2');
}
});
});
Result

サンプルデモはこちら

関連リンク

スクロールしても要素が固定するスティッキーサイドバー
グローバルナビをトップに固定するスティッキーナビ+ドロップダウンメニュー
グローバルナビをトップに固定するスティッキーナビ

  • カテゴリー:Labs