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>