私の目的は、ヘッダーがスクロールされた後、ビューポートの上部にメニュー バーを固定することです。
この jQuery を使用してこれを実現し、次のコードを使用して、メニュー バーが一番上に達したときに CSS を変更しました。
jQuery(document).ready(function($){
// Check the initial Poistion of the Sticky Header
var stickyHeaderTop = $('#stickyMenu').offset().top;
$(window).scroll(function(){
if( $(window).scrollTop() > stickyHeaderTop ) {
$('#stickyMenu').css({position: 'fixed', top: '0px'});
$('#stickyAlias').css('display', 'block');
} else {
$('#stickyMenu').css({position: 'static', top: '0px'});
$('#stickyAlias').css('display', 'none');
}
});
});
これが私の作業例を含む私の開発ページです: http://dev.harryg.me/serge/home/
Firefox では夢のように動作しますが、Chrome には問題があります。css の変更は、本来よりもはるかに早く開始されたようです。数ピクセル下にスクロールしただけで、メニュー バーが固定され、上部に固定されます。ヘッダー画像のせいだと思いますが、理由がわかりません...
編集:すべての提案に感謝します。私は自分の開発セットアップから離れているので、あなたのすべての提案をレビューするのを待つ必要があります. Explosion Pills と Malk が言っていたように、問題はstickyHeaderTop
、ヘッダー イメージが読み込まれる前に が計算されるためです。これが、画像がキャッシュされると機能するのに、ページを更新すると機能しない理由です。後で Explosion Pills のソリューションを試し、必要に応じて賛成/承認します。