2011-08-04 43 views
1

我在使用内部具有固定高度和溢出的div时出现JQuery偏移量问题。溢出偏移量的问题Div

在这个div里面我有两个栏目,一个主栏和一个侧栏。我希望侧栏中的其中一个div在div内滚动,直到它到达顶部,但我希望它留在那里。

我有一个演示设在这里:http://jsfiddle.net/zsJAr/53/

股利不滚动起来,但直到它滚过的div顶部,有效地切断的上部没有启动留在顶部div。

任何帮助将不胜感激。

回答

1

您所需要的顶偏其中<h1>是:

http://jsfiddle.net/maniator/qaVnY/

$(document).ready(function() { 

    // move the share this widget with the window 
    if ($('#scrollingContent').length > 0) { 
     var $widget = $("#scrollingContent"); 
     var $window = $("#overFlowDiv"); 
     var $topOffset = $('h1').height(); 
     var $offset = $widget.offset(); 
     var $initialMargin = $widget.css('marginTop'); 

     $window.scroll(function() { 
      if ($window.scrollTop() > ($offset.top)) { 
       $widget.stop().animate({ 
        marginTop: ($window.scrollTop() - ($offset.top - $topOffset)) 
       }); 
      } else { 
       $widget.stop().animate({ 
        marginTop: $initialMargin 
       }); 
      } 
     }); 
    } 
}) 
+0

嗯,那似乎更多地切断了#scrollingContent div。 – Mouseman

+0

@Mouseman,刷新小提琴,我有一个小错误,它现在修复 – Neal

+0

小提琴只是一个例子,而不是实际的页面我拥有它。整个页面加载在iframe中,页面顶部有一个菜单,页面的其余部分是溢出div(使菜单保持在iframe顶部) 我刚刚通过减去'topoffset'与菜单的高度。我看到的是你在你的例子中所做的。 我只是认为我这样做是“黑客攻击”,因为脚本在一个常规窗口中工作。它似乎并没有在溢出的div中正常工作。 但它现在工作。 – Mouseman

1

少一点传统,但是这似乎为我工作...

$window.scroll(function() { 
if ($window.scrollTop() > $offset.top) { 
$widget.stop().animate({ 
    marginTop: ($window.scrollTop() -(180 - $offset.top)) 
});