http://jsfiddle.net/CbL7W/スクロール イベント動作の例。
Chrome と Firefox の両方で正しく動作するこのスクリプトがあります。
var stickyNavigationOffsetTop = $('.top-nav').offset().top;
var stickyNavigation = function () {
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavigationOffsetTop) {
$('.top-nav').css({ 'position': 'fixed', 'top': 0, 'left': 0, 'opacity': .8 });
} else {
$('.top-nav').css({ 'position': 'relative', 'opacity': 1 });
}
};
stickyNavigation();
$(window).scroll(function () {
stickyNavigation();
});
しかし、Internet Explorer には少し問題があります。同じページにそのスクリプトがあります。div を非表示にするスクリプトへのリンクがあります。これが発生すると、ページが完全にページの上部にスクロールして戻ることがありますが、IE はそうではありません。それが起こったときに発砲$(window).scroll
します。
ページがトップに戻ったときの問題のスクリーンショット。
Chrome (OK): http://i.stack.imgur.com/6WJx7.jpg
IE (間違い): http://i.stack.imgur.com/CXbKk.jpg