J'essaie d'obtenir un widget javascript de sélecteur de couleur travaillant dans une page avec un tas de "choses" dans ce que je ne peux pas changer. Une partie du "truc" fait que le sélecteur de couleurs apparaît bien en dessous du lien quand on clique dessus. Je l'ai réduit à un exemple simple ci-dessous. Ce qui est censé se produire est lorsque vous cliquez sur "lien 1", "div1" devrait se déplacer directement en dessous de "lien 1". Qu'est-ce qui se passe réellement, c'est que "div 1" apparaît bien en dessous de "lien 1". Si vous supprimez position: relative;
de la définition CSS pour divMain
, "div 1" est positionné correctement.Positionnement dynamique à l'intérieur de div relatif
Comment est-ce que je peux placer "div 1" directement sous "lien 1" sans enlever position: relative;
?
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>