Javascript 将绝对div定位在相对父-webkit浏览器中

Javascript 将绝对div定位在相对父-webkit浏览器中,javascript,jquery,css,css-position,Javascript,Jquery,Css,Css Position,我的HTML基本上如下所示: <div id="#container"> <div id="left_col"> left stuff </div> <div id="middle_col"> middle stuff </div> <div id="right_col"> <div id="anchor"></div> <div id="

我的HTML基本上如下所示:

<div id="#container">
  <div id="left_col">
    left stuff
  </div>
  <div id="middle_col">
    middle stuff
  </div>
  <div id="right_col">
     <div id="anchor"></div>
     <div id="floater>
       The problem div
     </div>
  </div>
</div>
var a = function() {
    var b = $(window).scrollTop();
    var d = $("#anchor").offset().top;
    var c = $("#floater");
    if (b > d) {
        var t = b-200; //200px is the height of the header, I subtract to make it float near the top
        c.css({top:t+"px"});
    } else {
        c.css({top:""});
    }
};
我使用以下javascript在向下滚动页面时保持#floater div的位置:

var a = function() {
    var b = $(window).scrollTop();
    var d = $("#anchor").offset().top;
    var c = $("#floater");
    if (b > d) {
        c.css({position:"fixed",top:"10px"});
    } else {
        c.css({position:"absolute",top:""});
    }
};
$(window).scroll(a);
a();
我遇到的问题是,在基于WebKit的浏览器中,一旦jQuery固定了浮动div的位置,使其与顶部保持10px的距离,容器中的“left:82px”就会跳出窗口,导致浮动器将82px跳转到左侧。这在FF或IE中不会发生。有人知道解决方法吗

更新:已解决

我解决这个问题的方法不是使用固定定位,而是使用绝对定位。我更改了javascript,将div#flotter的top CSS属性设置为基于值$(window.scrollTop(),如果div#anchor的top offset大于$(window.scrollTop())。很简单

因此,a()函数现在如下所示:

<div id="#container">
  <div id="left_col">
    left stuff
  </div>
  <div id="middle_col">
    middle stuff
  </div>
  <div id="right_col">
     <div id="anchor"></div>
     <div id="floater>
       The problem div
     </div>
  </div>
</div>
var a = function() {
    var b = $(window).scrollTop();
    var d = $("#anchor").offset().top;
    var c = $("#floater");
    if (b > d) {
        var t = b-200; //200px is the height of the header, I subtract to make it float near the top
        c.css({top:t+"px"});
    } else {
        c.css({top:""});
    }
};

您有没有可以发布的示例…“浮动器”ID在标记中缺少引号。可能是您的其他浏览器在某种程度上原谅了它,但问题浏览器没有。我们试图伪造数字以使其在JSFIDLE中重现,但我今天没有时间了。;-)如果有人(比如尼克!)想接手,那就从这里开始:我无法在FF 11、Google Chrome和Opera 11.62上重现这种行为。你能指定浏览器的具体名称吗?顺便说一句,我试着从格雷格那里复制:引用错误在实际页面上不存在。