1
我試圖讓一個顏色選擇器JavaScript小部件工作在一堆「東西」,我不能改變的一個頁面。一些「材料」導致顏色選擇器在單擊時顯示在鏈接下方。我已經將它簡化爲下面的一個簡單示例。動態定位裏面的相對格
應該發生什麼是當你點擊「鏈接1」,「div1」應該直接移動到「鏈接1」下方。實際情況是,「div 1」遠遠低於「link 1」。如果您從divMain
的CSS定義中刪除position: relative;
,則「div 1」的位置正確。
如何在不移除position: relative;
的情況下將「div 1」直接放置在「link 1」下面?
function setPos(aname, dname) {
var o = document.getElementById(aname);
var ol = o.offsetLeft;
while ((o = o.offsetParent) != null) {
ol += o.offsetLeft;
}
o = document.getElementById(aname);
var ot = o.offsetTop + 25;
while ((o = o.offsetParent) != null) {
ot += o.offsetTop;
}
document.getElementById(dname).style.left = ol + "px";
document.getElementById(dname).style.top = ot + "px";
}
h1 {
height: 50px;
}
#divMain {
position: relative;
}
<h1></h1>
<div id="divMain">
<a href="#" onClick="setPos('link1','div1');return false;" name="link1" id="link1">link 1</a>
<div id="div1" style="position:absolute;border-style:solid;left:200px;top:200px;">div 1</div>
</div>