<div class="arc_box"> <div class="arc_left">左侧</div> <div class="arc_right"> 右侧 <a class="teachers_right_ad mt20">广告块</a> </div> </div>
$(function(){
var ad = $(".teachers_right_ad"); //声明对象
var ad_f = $(".arc_right"); //对象父元素
var ad_gf = $(".arc_box"); //对象父元素的父元素
var offset = ad.offset();
var box_h = ad.outerHeight(true);
var h=ad_gf.offset().top+ad_gf.outerHeight()-box_h; //计算触发ad停止fixed的临界点
var hf=ad_gf.offset().top+ad_gf.outerHeight(); //计算触发ad停止absolute的临界点
var hh=ad_gf.height()-ad.outerHeight(true); //计算adabsolute的top值
ad_f.css({"position":"relative"}); //给定ad的父元素position relative
$(window).scroll(function(){
if($(window).scrollTop()>=offset.top&&$(window).scrollTop()<h){
ad.css({"position":"fixed","top":"0px"});
}
else if($(window).scrollTop()>=h &&$(window).scrollTop()<hf){
ad.css({"position":"absolute","top":hh+"px"});
}
else {
ad.css({"position":"static"});
}
});
})原文:http://reason2516.blog.51cto.com/5550720/1641816