前提・実現したいこと
jqueryをつかってスティッキーメニューバーを実装したいのですが、うまくいきません。
上から順に
header
navbar
section
section
section
footer
という構成で、navbarより下に下がったときに画面上部にバーを固定したいです。
cssのposition: stickyもためしましたが、そもそも用途が違っていた為、jqueryでの実装を決めました。
スティッキーバーにしたい.navbarのhtml
<section id="navbar"> <ul class="globalnav"> <li><a href="#">TOP</a></li> <li><a href="#about">ABOUT</a></li> <li><a href="#">SKILLS</a></li> <li><a href="#">WORKS</a></li> <li><a href="#">CONTACT</a></li> </ul> </section>
.navbarに適用しているcss
#navbar { position: absolute; } .globalnav { display: table; table-layout: fixed; margin: 0 auto; background-color: #8b0000; padding: 0; width: 100%; text-align: center; } .globalnav li { display: table-cell; min-width: 50px; } .globalnav a { width: 100%; font-size: 2.0rem; display: block; padding: 20px; text-decoration: none; color: #228b22; border-right: 5px solid #aa0000; } a:visited { color: #228b22; } .globalnav li a:hover{ color: #adff2f; border-bottom: 3px solid #adff2f; transition: .4s; background-color: #aa0000 } .sticky { position: fixed; top: 0;
実現するためのjQuery
$(function () { var nav = $('.navbar'), offset = nav.offset(); $(window).scroll(function () { if($(window).scrollTop() > offset.top) { nav.addClass('sticky'); } else { nav.removeClass('sticky'); } }); });
回答1件
あなたの回答
tips
プレビュー