例如,我有两个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(),但我不知道它是否可以计算角位置。如果有人可以给出一些提示,我们将非常感激。感谢。
答案 0 :(得分:1)
给出div元素position:relative
并给出你追加position:absolute
的锚点(不是img)元素。
当你使用绝对定位时,它仍然相对于最近的“定位”(即不是static
)祖先,所以为了你的目的,你不需要计算任何偏移。
(并且,没有必要让它工作但更整洁,而不是在你附加的元素上使用内联样式只是给他们一个共同的类。)