我试图让一个子菜单在滚动时停留在页面顶部,一旦它在滚动过程中到达顶部。这是我到目前为止所拥有的:
$(window).scroll(function () {
if ($(window).scrollTop() > 175) {
$('#location_menu').css('position', 'fixed').css('top','0px').css('z-index','1000');
$('.first').css('padding-top','415');}
else {
$('#location_menu').css('position', 'relative').css('z-index','1');
}});
我遇到的问题是滚动不平滑,一旦元素从位置更改:相对位置:固定,内容似乎会向上跳跃/跳过大约 415 像素,这与子菜单的高度相同。
这是CSS:
<div id="location_menu" >submenu content
</div>
<div id="content" class="location_detail first">content beneath submenu
</div>
.first
当页面滚动并到达页面顶部的 175px 范围内时,我添加了415px 的 padding-top 行,但这.css('padding-top','415')
实际上似乎并没有做任何事情。没有变化,所以我认为我执行不正确。
我应该使用上面列出的不同的滚动功能吗?
根据@Danko 的代码,这是我最终用来解决问题的方法:
$(window).scroll(function () {
var $conten = $('.first'),
$menu = $('#location_menu')
scrollpos = $(window).scrollTop();
if (scrollpos >= 175) {
$conten.css('padding-top','365px');
$menu.css('position', 'fixed').css('top','0px').css('z-index','1000');
} else {
$conten.css('padding-top','0');
$menu.css('position', 'fixed').css('position', 'relative').css('z-index','1');
}
});