2011-02-05 20 views
12

私は、あるjqueryでそれにぶつかることを試みています。ページをスクロールした後に要素のCSSの位置を変更する

絶対位置が設定されているul navがありますが、ページを200ピクセル下にスクロールすると、navが常にページ上にとどまるように位置を固定に切り替えることができます。

どうすればよいですか?

以下

は、私がここで

+0

なぜデフォルトで 'position:fixed'を使うのでしょうか? – Sotiris

+0

"absolute"の代わりにpoitionを "fixed"に設定します。 – Neil

+0

okですが、navをポイントまで下にスクロールしてから、固定した後に切り替えるには、どうすればjqueryを実行できますか? – sat

答えて

13

おかげで

これは私が

http://www.defringe.com/

http://satbulsara.com/tests/

Thankssからそれを得た

$(document).ready(function() { 
    var theLoc = $('ul').position().top; 
    $(window).scroll(function() { 
     if(theLoc >= $(window).scrollTop()) { 
      if($('ul').hasClass('fixed')) { 
       $('ul').removeClass('fixed'); 
      } 
     } else { 
      if(!$('ul').hasClass('fixed')) { 
       $('ul').addClass('fixed'); 
      } 
     } 
    }); 
}); 

を望んでいたものです! !!!

2

http://satbulsara.com/tests/

に取り組んでいます例です。私は「スティッキー」サイドバーを作成するために使用するコードです。マークアップに合わせてIDを変更する必要があります。

 
var sidebarScrollTop = 0; 

$(document).ready(function() { 
    sidebarScrollTop = $("#sidebar").offset(); 

    $(window).scroll(function() { 
     var docScrollTop = $('body,html').scrollTop(); 

     if(docScrollTop > sidebarScrollTop.top) { 
      $("#sidebar").css({ position: 'fixed', top: '0px' }); 
     } else { 
      $("#sidebar").css({ position: 'static' }); 
     } 
    }); 
}); 

$(window).resize(function() { 
    sidebarScrollTop = $("#sidebar").offset().top; 
}); 

$(document).resize(function() { 
    sidebarScrollTop = $("#sidebar").offset().top; 
}); 

基本的に、あなたがする必要があるのは、サイドバーのコンテナのIDのため#sidebarを変更です。このコードは、サイドバー要素が画面の上部を過ぎてスクロールされるかどうかを確認します。そうであれば、位置はfixedに変更され、ページ上に戻ると再び位置はstatic(デフォルト)に戻ります。

$(document).resize()$(window).resize()の機能は、ドキュメント/ウィンドウのサイズをそれぞれ変更したときにサイドバーがページ上部に固執することを確実にします。ドキュメント関数は、要素のサイズを変更するjQueryアニメーションがあっても、サイドバーが正しく機能するようにします。助けてとても迅速であることのためにみんなに

+0

おかげでジェームズはほとんど私が探しているもの、私はちょっと上にスクロールしてスティックすることができるようにしたいと思います+これは私が上下にスクロールするときに点滅するようです – sat

+0

しかし、これは私が正確に探していたものです – sat

+0

@sat - 私は開発しているサイトでそれを使用し、うまくいきます。それがちらつければ、おそらくサイドバーを 'div'コンテナの中に入れてみてください。 – Bojangles

4

私はthis jQuery pluginと書いてあります。

+0

ニート!私は間違いなく私の次のプロジェクトでそれを使って見ていきます。 – Bojangles

関連する問題