我正在尝试在用户滚动屏幕时构建一个跟随用户的浮动菜单:
menuYloc = parseInt($("#floatMenu").css("top").substring(0,$("#floatMenu").css("top").indexOf("px")));
$(window).scroll(function() {
var offset = menuYloc+$(document).scrollTop()+"px";
$("#floatMenu").animate({top:offset},{duration:500,queue:false});
});
这在Firefox中完全正常,但在Chrome中不起作用。有什么我想念的吗?
答案 0 :(得分:2)
您可以使用position()和offset()方法,而不是尝试从CSS解析菜单的顶部位置:
menuYloc = $("#floatMenu").offset().top;
$(window).scroll(function() {
var offset = menuYloc+$(document).scrollTop()+"px";
$("#floatMenu").animate({top:offset},{duration:500,queue:false});
});
position()是相对于元素的偏移父项(即包含的#floatMenu),而offset()是相对于文档的。