$(document).ready(function() {
var navoffeset=$(".header").offset().top;
$(window).scroll(function(){
var scrollpos=$(window).scrollTop();
if(scrollpos >=navoffeset){
$(".header").addClass("fixed")
.addClass("color");
}else{
$(".header").removeClass("fixed")
.removeClass("color");//移出这个类
}
});
});
给你分析一下,你获取navoffeset的offset().top,初始的时候offset().top肯定不小于scrollTop()。假如offset().top和scrollTop()相等,相等的情况是scrollTop()和offset().top都为0,执行if语句。之后你滚动scrollTop()一直大于offset().top,仍然只执行if语句。当offset().top大于scrollTop(),执行else语句,这时候你还没有addClass,所以移除是没有效果的,随着滚动增加,你的scrollTop()等于然后大于offset().top,执行if语句,你若一致往下滑,只执行if语句,你应该在回滚到最上边,才会执行else语句,scrollTop()小于offset().top,此时已经addClass了,那么现在removeClass开始起作用。如果你的offset().top一开始和scrollTop()相等的情况下,else语句永远不会执行。只执行if语句。