Je veux positionner une DIV dans une coordonnée spécifique? Comment puis-je faire cela en utilisant Javascript?
Script ses propriétés left
et top
en tant que le nombre de pixels du bord gauche et du bord supérieur respectivement. Il doit avoir position: absolute;
var d = document.getElementById('yourDivId');
d.style.position = "absolute";
d.style.left = x_pos+'px';
d.style.top = y_pos+'px';
Ou faites-le comme une fonction pour pouvoir l'attacher à un événement comme onmousedown
function placeDiv(x_pos, y_pos) {
var d = document.getElementById('yourDivId');
d.style.position = "absolute";
d.style.left = x_pos+'px';
d.style.top = y_pos+'px';
}
Vous n'avez pas à utiliser Javascript pour faire cela .
div.blah {
position:absolute;
top: 0; /*[wherever you want it]*/
left:0; /*[wherever you want it]*/
}
Si vous pensez que vous devez utiliser JavaScript ou si vous essayez de le faire de façon dynamique L'utilisation de JQuery affecte tous les divs de la classe "blah":
var blahclass = $('.blah');
blahclass.css('position', 'absolute');
blahclass.css('top', 0); //or wherever you want it
blahclass.css('left', 0); //or wherever you want it
Alternativement, si vous devez utiliser old-javascript classique, vous pouvez le récupérer par identifiant
var domElement = document.getElementById('myElement');// don't go to to DOM every time you need it. Instead store in a variable and manipulate.
domElement.style.position = "absolute";
domElement.style.top = 0; //or whatever
domElement.style.left = 0; // or whatever
cela dépend si tout ce que vous voulez est de positionner un div et rien d’autre, vous n’avez pas besoin d’utiliser un script Java pour cela. Vous pouvez y parvenir uniquement par CSS. Ce qui compte est relatif au conteneur dans lequel vous souhaitez positionner votre div. Si vous souhaitez le positionner par rapport au corps du document, votre div doit être positionné de manière absolue et son conteneur ne doit pas être positionné de manière relative ou absolue. par rapport au conteneur.
Sinon, avec Jquery, si vous souhaitez positionner un élément par rapport au document, vous pouvez utiliser la méthode offset ().
$(".mydiv").offset({ top: 10, left: 30 });
si relatif par rapport à la position parent, le parent ou absolu du parent puis utilisez ce qui suit ...
var pos = $('.parent').offset();
var top = pos.top + 'no of pixel you want to give the mydiv from top relative to parent';
var left = pos.left + 'no of pixel you want to give the mydiv from left relative to parent';
$('.mydiv').css({
position:'absolute',
top:top,
left:left
});
Vous pouvez également utiliser la propriété css position fixed.
<!-- html code -->
<div class="box" id="myElement"></div>
/* css code */
.box {
position: fixed;
}
// js code
document.getElementById('myElement').style.top = 0; //or whatever
document.getElementById('myElement').style.left = 0; // or whatever
Voici un article correctement décrit et un exemple avec le code . JS coordonnées
Selon l'exigence. Vous trouverez ci-dessous le code qui est enfin affiché dans cet article . Il est nécessaire d'appeler la fonction getOffset et de transmettre l'élément HTML qui renvoie ses valeurs top et left.
function getOffsetSum(elem) {
var top=0, left=0
while(elem) {
top = top + parseInt(elem.offsetTop)
left = left + parseInt(elem.offsetLeft)
elem = elem.offsetParent
}
return {top: top, left: left}
}
function getOffsetRect(elem) {
var box = elem.getBoundingClientRect()
var body = document.body
var docElem = document.documentElement
var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft
var clientTop = docElem.clientTop || body.clientTop || 0
var clientLeft = docElem.clientLeft || body.clientLeft || 0
var top = box.top + scrollTop - clientTop
var left = box.left + scrollLeft - clientLeft
return { top: Math.round(top), left: Math.round(left) }
}
function getOffset(elem) {
if (elem.getBoundingClientRect) {
return getOffsetRect(elem)
} else {
return getOffsetSum(elem)
}
}
J'ai écrit ceci et ajouté le 'px';.
function getOffset(el) {
el = el.getBoundingClientRect();
return {
left: (el.right + window.scrollX ) +'px',
top: (el.top + window.scrollY ) +'px'
}
}
to call: //Gets it to the right side
el.style.top = getOffset(othis).top ;
el.style.left = getOffset(othis).left ;