ウェブサイトの読み込み時にページの下部に表示され、スクロール時に上に移動するスティッキー ナビゲーション メニューを作成しようとしています。そのナビゲーション メニューは、スクロール中に上部に到達すると、ページの上部に固執する必要があります。今では動作し、固執しています。ただし、ゆっくりスクロールすると問題が発生します。必要以上に上昇し、一部のピクセルが元の場所に戻った後にのみ上昇します。高速スクロール中は、この動作は再現されないことに注意してください。その「オーバースクロール」の原因と、正確に上部に到達したときに動きを止めるための提案は何ですか?
htmlコード
<div class="menu"></div>
CSSコード
body {
margin: 0;
padding: 0;
height: 2000px;
}
.menu {
position: absolute;
width: 100%;
height: 100px;
background: orange;
top: auto;
bottom: 0;
}
.fixed_menu {
position: fixed;
top: 0;
bottom: auto;
}
jqueryコード
var menu_height = $('menu').height();
$(window).scroll(function(e){
e.preventDefault();
var window_height = $(window).height();
var window_scroll = $(window).scrollTop();
if(window_scroll >= window_height - menu_height){
$('.menu').addClass("fixed_menu");
}else{
$('.menu').removeClass("fixed_menu");
}
});
jsfiddle の例http://jsfiddle.net/6JZf8/