I K私はちょうどjqueryバージョン(クリーナーと設定可能な少し)を追加したかったのですが、それはAndrew D.の答えの修正版です。
この場合、私は相対的な位置のdivを持っていると私は特定のポイント(max_scroll)に達したときに、私は、オブジェクトにクラスを追加し、そのクラスはそれが
をフロートにするものである代わりに、2つのクラスがありません私の、少なくとも以下
はjavascriptの(すべてがデドキュメントレディ機能の内部で行われる)
<script type="text/javascript">
var max_scroll = 400; // this is the scroll position to start positioning the nav in a fixed way
$(document).ready(function(){
$(window).scroll(function() {
var navbar = $(".filterbutton");
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if(scrollTop > max_scroll && !navbar.is(".filterbuttonFixed")) {
navbar.addClass("filterbuttonFixed");
// console.log("go floated");
}
else if(scrollTop < max_scroll && navbar.is(".filterbuttonFixed")) {
// console.log("return to normal");
navbar.removeClass("filterbuttonFixed");
}
}
});
</script>
であり、これは私のナビゲーションバーのコンテナのdiv
<div id="floatable-nav-bar" class="my-relative-position-class">
<nav class="page-menu">
<ul class="scroll-nav">
<li><a class="selected" href="#first">Section 1</a></li>
<li><a class="" href="#second">Section 2</a></li>
<li><a class="" href="#third">Section 3</a></li>
<li><a class="" href="#fourth">Section 4</a></li>
</ul>
</nav>
</div>
と最後ではなく、 NAV-浮かべスタイル
#floatable-nav-bar.nav_floated {
position:fixed;
top:1px;
left: 0;
width:100%;
text-align: center;
background: #EEE;
padding: 5px 0;
}
私は、これは最も単純な例ではないですけど、jQueryのユーザーのために多分これは単純なアプローチである、と私は(少なくともそれがためだった、それだけで1つのクラスを追加および削除する方が良いと思います私)。あなたはそれをこのような何か行うことができます
このソリューションは、すべてのブラウザでひどくちらつきます。現代のブラウザでは、CSSを使って焼く方法である 'position:fixed'がサポートされています。 – sohtimsso1970
はい、私はもうこのソリューションを使用しません。それは当時の固定的な地位を設定するという私の限られた知識に基づいていました。 position:fixedを使用するソリューションが優れています。 –