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问题。