*{ padding:0px; margin:0px;} .box{ width:1000px; background:#ccc; margin:0 auto; overflow:hidden;} .main{ width:770px; height:2000px; background:#000; float:left;} .sub{ width:220px; background:#FC6; float:right; position: relative;} .sub01{ width:220px; height:100px; background:#0CC; margin-bottom:10px;} .fixed{ width:220px; height:900px; border-bottom: 2px solid #333; background:#F66; font:normal 13px/30px 5FAE8F6F96C59ED1; text-align:center;} .bottom{width: 1000px; height: 200px; background: #ed7215; overflow: hidden;}
<div class="box"> <div class="bottom">我是头部</div> <div class="main"></div> <div class="sub"> <div class="sub01"></div> <div class="sub01"></div> <div class="fixed">我是固定的哟</div> </div> <div class="bottom">我是底部</div> </div>
<script type="text/javascript" src="js/jquery-1.12.0.min.js"></script> <script type="text/javascript"> $(function(){ var $oDivTop=$(".fixed").offset().top; var $oMain=$(".main").offset().top; var $mHeight=$(".main").height(); var $fHeight=$(".fixed").height(); var $cha=$mHeight-$fHeight; var $chaO=$mHeight+$oMain-$fHeight; $(window).scroll(function(){ var $scrollTop=$(document).scrollTop(); var $dTop=-($scrollTop-$chaO)+"px"; if($mHeight>$fHeight){ if($scrollTop>=$oDivTop && $scrollTop<$oMain+$cha){ $(".fixed").css({"position":"fixed","top":"0"}); }else if($scrollTop>$chaO){ $(".fixed").css({"position":"fixed","top":$dTop}); }else{ $(".fixed").css("position",""); } } }) }) </script>