【发布时间】:2012-11-04 07:39:16
【问题描述】:
我试图让侧边栏在滚动到某个点后固定在顶部。
var sidebarTopPos = $('#sidebar').offset().top;
$(window).scroll(function(event) {
if ($(window).scrollTop() >= sidebarTopPos) {
$('#sidebar').css({
position: 'fixed',
top: 0
});
}
else {
$('#sidebar').css({
position: 'relative'
});
}
});
看看这个jsfiddle
当我向下拖动滚动条时,整个事情都很好。但是,当我尝试使用鼠标滚轮滚动时,当侧边栏从“相对”变为“固定”时,我看到烦人的闪烁,我尝试了很多东西。请帮忙。
编辑:也许我应该更清楚。侧边栏只有在穿过顶部 div 时才会“闪烁”
【问题讨论】:
-
似乎也可以在 Firefox 中使用。您在哪个浏览器中看到此问题?
-
我更新了 jsfiddle。 “顶部” div 的高度使得它不完全适合一个“鼠标滚轮滚动”,那么您将看到问题。我正在使用 Chrome 18
-
更具体地说,我看到“Test test test...”闪烁,因为它在假定正确位置之前稍微向上移动了一点
-
注意:它确实适用于所有其他浏览器。这很奇怪......无论如何,非常感谢你们!
-
@Jay Na 欢迎浏览器!
标签: jquery css-position flicker