jQuery $(window).scroll和Internet Explorer(8-9)

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

我有同样的问题,并且我不喜欢它,我的解决方法是在显示/隐藏div时触发window.scroll事件。 $(窗口).trigger( ‘滚动’);

请参阅本文的这个答案

我想改变

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

可以解决IE问题。