0

例如,我有两个 div 容器,如下所示:

^^^^^^^^^^^^^^^^^^<br/>
DIV 1 container|<br />
%%%%%%%%|


^^^^^^^^^^^^^^^^^^<br/>
DIV 2 container|<br />
%%%%%%%%|

第一个(Div1)是 Div 2 的顶部。我想在这些 div 角之一(左上、右上、左下、右下)上浮动一个图标。

对于第一个 div,这将非常容易,因为我可以使用 jQuery 来获取 div 的宽度和高度并计算角坐标。例如,如果第一个 div 维度是:

1240 = 宽度 375= 高度

我使用 jQuery 获得这些尺寸:

    var heightdiv1=$('div1').height();
    var widthdiv1 = $('div1').width();

以下是在 JS 中计算的坐标:

计算右下坐标:

左=1240-1240*0.1=1116= 上=375-375*0.1=337.5

计算左下坐标

左=0 上=375-375*0.1=337.5

计算右上角坐标:

左=1240-1240*0.1=1116 上=0

计算左上角坐标:

左=0 上=0

然后我可以使用 jQuery 将图标附加到 div 并使用 position:absolute 来获得浮动效果:

$('#div1').append('<a href="#"><img src="/test/icon.jpg" style="position:absolute; top: '+top+'px; left: '+left+'px"></a>');    

这个配方非常有效,但仅适用于第一个 div。对于页面中的第二个 div (DIV2) 或任何其他 div,它不会落在正确的角落。

我相信我仍然可以为任何其他 div 获得正确的 div 尺寸,但我发现很难将我的图标定位在它们的特定角落,就像我在第一个 div 上所做的那样。

我试过使用 .offset() 但我不知道它是否可以计算角位置。如果有人可以提供一些提示,将不胜感激。谢谢。

4

1 回答 1

1

给出 div 元素position:relative并给出要附加的锚(不是 img)元素position:absolute

当您使用绝对定位时,它仍然相对于最近的“定位”(即不是static)祖先,因此出于您的目的,您不需要计算任何偏移量。

(而且,没有必要让它工作但更整洁,而不是在您要附加的元素上使用内联样式,只需给它们一个公共类。)

演示:http: //jsfiddle.net/mSLRN/

于 2012-12-18T03:08:54.893 回答