「スティッキー」ナビゲーションメニューを実装しようとしています-スクロール中にナビゲーションバーが画面の上部に到達すると固定位置に切り替わるメニュー項目です。
これは Firefox と Chrome では問題なく動作しますが、Internet Explorer (9 でテスト中) では、スクロールが特定のポイントに達し、位置が固定に切り替わると、すべての子<li>
が消えます (ただし、<ul>
それらが含まれている は同じままです)サイズ。
jQueryを使用してこれを実行しようとしています(これが私が持っているコードです):
<script type="text/javascript">
$(function() {
// grab the initial top offset of the navigation
var sticky_navigation_offset_top = $('#navigation').offset().top;
// our function that decides weather the navigation bar should have "fixed" css position or not.
var sticky_navigation = function(){
var scroll_top = $(window).scrollTop(); // our current vertical position from the top
// if we've scrolled more than the navigation, change its position to fixed to stick to top, otherwise change it back to relative
if ((scroll_top + 40) > sticky_navigation_offset_top) {
$('#navigation').css({ 'position': 'fixed', 'top':40, 'left':0 });
} else {
$('#navigation').css({ 'position': 'static', 'margin-top': 0 });
}
};
// run our function on load
sticky_navigation();
// and run it again every time you scroll
$(window).scroll(function() {
sticky_navigation();
});
});
</script>
残念ながら、ログインが必要な安全なウェブサイトに実装されているため、これを実証することはできません. うまくいけば、私は理にかなっています。必要に応じてスクリーンショットを提供できます。
編集static
: IE9でメニュー項目が正しく表示される位置にある場合は、言及する必要があります。縮んでメニューが になるfixed
と、メニュー項目が消える!
別の編集:jsfiddle.netを初めて使用したので、うまくいくことを願っていますhttp://jsfiddle.net/ecm5L/