2011-09-22 58 views
1

我有一个div,我想从窗口顶部向上滚动20px时固定div,当您获得底部时,从页脚向上移动40px。我的代码似乎并不常见,必须有更好的方法? Page LinkDiv定位固定在margin-top:滚动时为20px

$(document).scroll(function() { 
     if($(window).scrollTop() >= 345){ 
      $('#rightShipping').css({'position' : 'fixed', 'top' : '0px'}); 
     } 
     if($(window).scrollTop() <= 346){ 
      $('#rightShipping').css({'position' : '', 'top' : ''}); 
     } 
     console.log($(window).scrollTop()); 
    }); 
+0

[div的margin-top滚动时保留20px的可能重复](http://stackoverflow.com/questions/7508734/divs-margin-top-stays-20px-when-scrolling) –

回答

0

一个快速的想法 - 我会删除.rightCol块,只留下一个#rightShippingtop: 20px它的父与position: relative。然后用这个代码:

$(document).scroll(function() { 

    var scrollTop = $(window).scrollTop(); 

    var offsetTop = $('#rightShipping').offset().top; 
    var positionTop = $('#rightShipping').position().top; 

    if (scrollTop >= offsetTop - positionTop) { 
     $('#rightShipping').css('position', 'fixed'); 
    } else { 
     $('#rightShipping').css('position' : 'relative'); 
    } 
}); 

我真的不,知道这是否会工作,我没有测试过,我需要得到一些睡眠,但我希望它能帮助。

祝你好运!