javascriptでスクロールすると上部で固定されるメニューにする。
グローバルメニューはいつも見える場所にあるのが理想的な場合が多いので、当サイトでもグローバルメニューをスクロールしても上部に固定される様にしてみました。ページをスクロールした事をJavascriptで認識し、グローバルメニューのID属性にclassを追加するというのが肝となります。
ヘッダーに以下を追加。Wordpressなのでjquery.min.jsの行はなしでもOKです。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script type="text/javascript"> jQuery(function() { var nav = jQuery('#primary-nav'); var offsetTop = nav.offset().top; var floatMenu = function() { if (jQuery(window).scrollTop() > offsetTop) { nav.addClass('fixed'); } else { nav.removeClass('fixed'); } } jQuery(window).scroll(floatMenu); jQuery('body').bind('touchmove', floatMenu); }); </script>
CSSには以下を追加します。
.fixed { display: block; position: fixed !important; top: 0; background-color: #CCC; z-index: 500; width: 100%; }
デモは当サイトのメニューで再現しています。
サイトのCSSやjQueryの利用環境などによって記述が変わってきます。