6

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

4

2 に答える 2

2

私は同じ問題を抱えており、嫌いなのと同じくらい、私の回避策は、div を表示/非表示にするときに window.scroll イベントをトリガーすることです。$(window).trigger('scroll');

于 2013-01-21T16:28:58.813 に答える
1

この記事のこの回答を参照してください

変わると思います

$(window).scrollTop() to 
$(document).scrollTop() 

IE の問題が解決する場合があります。

于 2012-12-14T15:19:22.027 に答える