我的目标是在标题滚动过去后将菜单栏固定在视口的顶部。
我已经使用这个 jQuery 来实现这一点,并使用以下代码在菜单栏到达顶部时修改 css:
jQuery(document).ready(function($){
// Check the initial Poistion of the Sticky Header
var stickyHeaderTop = $('#stickyMenu').offset().top;
$(window).scroll(function(){
if( $(window).scrollTop() > stickyHeaderTop ) {
$('#stickyMenu').css({position: 'fixed', top: '0px'});
$('#stickyAlias').css('display', 'block');
} else {
$('#stickyMenu').css({position: 'static', top: '0px'});
$('#stickyAlias').css('display', 'none');
}
});
});
这是我的开发页面和我的工作示例:http ://dev.harryg.me/serge/home/
它在 Firefox 中实现了梦想,但 Chrome 存在问题;css 更改似乎比它应该更早地开始 - 仅向下滚动几个像素后,菜单栏变得固定并粘在顶部。我有一种感觉是标题图片是罪魁祸首,但不知道为什么......
编辑:感谢您的所有建议。由于我远离我的开发设置,我将不得不等待重新审查您的所有建议。正如 Explosion Pills 和 Malk 所说,问题是因为在stickyHeaderTop
加载标题图像之前计算。这就是为什么它在图像被缓存后起作用,但如果你刷新页面则不起作用。我稍后会尝试 Explosion Pills 的解决方案,并根据需要投票/接受。