浮动图标在不同位置的不同div的解决方案

时间:2012-12-18 03:04:47

标签: jquery

例如,我有两个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至40年* 0.1 = 1116 = 顶部= 375-375 * 0.1 = 337.5

计算左下坐标

left = 0的 顶部= 375-375 * 0.1 = 337.5

计算右上角坐标:

左= 1240至40年* 0.1 = 1116 顶部= 0

计算左上角坐标:

left = 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(),但我不知道它是否可以计算角位置。如果有人可以给出一些提示,我们将非常感激。感谢。

1 个答案:

答案 0 :(得分:1)

给出div元素position:relative并给出你追加position:absolute的锚点(不是img)元素。

当你使用绝对定位时,它仍然相对于最近的“定位”(即不是static)祖先,所以为了你的目的,你不需要计算任何偏移。

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

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