Comment puis-je trouver les coordonnées XY d'un élément HTML (DIV) à partir de JavaScript si elles n'étaient pas définies explicitement?Trouver X/Y d'un élément HTML avec JavaScript
Répondre
Cela peut être difficile selon le navigateur et la version. Je suggère d'utiliser jQuery et le plugin de positions.
La plupart des plugins de positions font maintenant partie du noyau de jQuery. Donc vous pouvez juste faire $ (element) .offset ({relativeTo: "body"}) - et cela vous donnera le haut et le gauche de l'objet par rapport au corps. – Sugendran
Excellent, je n'ai pas téléchargé jQuery dans quelques mois, bon de savoir qu'ils l'ont roulé. – palehorse
+1 pour jQuery offset – shan
Je ne suis pas sûr de ce que vous en avez besoin, et de telles choses sont toujours relatives (écran, fenêtre, document). Mais quand je avais besoin de comprendre cela, j'ai trouvé ce site utile: http://www.mattkruse.com/javascript/anchorposition/source.html
Et je trouve aussi que l'info-bulle du plugin quelqu'un fait pour jQuery avait toutes sortes de perspicacité intéressant de x, des astuces de positionnement y (regarder la fenêtre classe et le support sous-jacent jQuery le prévoit). http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
Vous pouvez utiliser une bibliothèque, comme Prototype ou jQuery, ou vous pouvez utiliser this handy function:
Il retourne un tableau.
myPos = findPos(document.getElementById('something'))
x = myPos[0]
y = myPos[1]
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
Vous devez donner l'attribution à quirksmode.org, cette fonction semble très familière. – pilsetnieks
Voilà comment je le fais:
// Based on: http://www.quirksmode.org/js/findpos.html
var getCumulativeOffset = function (obj) {
var left, top;
left = top = 0;
if (obj.offsetParent) {
do {
left += obj.offsetLeft;
top += obj.offsetTop;
} while (obj = obj.offsetParent);
}
return {
x : left,
y : top
};
};
Je pense que je préfère votre idée de retourner un objet sur le choix de Peter-Paul Koch de retourner un tableau dans sa solution originale. – cssimsek
Pour ce que ça vaut la peine, voici une version récursive:
function findPos(element) {
if (element) {
var parentPos = findPos(element.offsetParent);
return [
parentPos.X + element.offsetLeft,
parentPos.Y + element.offsetTop
];
} else {
return [0,0];
}
}
parentPos.X doit être parentPos [0], parentPos.Y doit être parentPos [1] – Noah
Vous pouvez ajouter deux propriétés à la Element.prototype
pour obtenir haut/gauche de n'importe quel élément.
window.Object.defineProperty(Element.prototype, 'documentOffsetTop', {
get: function() { return this.offsetTop + (this.offsetParent ? this.offsetParent.documentOffsetTop : 0); }
});
window.Object.defineProperty(Element.prototype, 'documentOffsetLeft', {
get: function() { return this.offsetLeft + (this.offsetParent ? this.offsetParent.documentOffsetLeft : 0); }
});
Voici une démo comparant les résultats à jQuery et de offset().top
.left
: http://jsfiddle.net/ThinkingStiff/3G7EZ/
- 1. Trouver XHTML malformé avec Javascript
- 2. comment trouver la position d'un élément dans un div
- 3. Ajouter un élément HTML - textarea dynamiquement en utilisant Javascript
- 4. Ajouter un élément html en utilisant javascript rend d'autres js
- 5. Comment référencer un élément HTML avec id + classe dans jQuery?
- 6. Où puis-je trouver de bonnes informations sur le fonctionnement du nouvel élément HTML canvas?
- 7. Comment charger javascript entremêlées avec html
- 8. Trouver l'origine de javascript
- 9. Mise en page XY JAVA
- 10. WPF: trouver l'emplacement d'un élément
- 11. erreur de sortie html avec javascript
- 12. chaînes correspondantes contenant HTML avec JavaScript
- 13. trouver un objet en Javascript
- 14. [HTML/JavaScript]:
- 15. Des moyens efficaces pour trouver un élément dans un tableau Javascript
- 16. Javascript n'affecte pas le code html ajouté avec javascript
- 17. hauteur d'un élément javascript
- 18. Comment trouver la div avant un élément spécifié avec jQuery?
- 19. Positionner un élément sous un autre élément en Javascript
- 20. élément HTML, personnalisé client événement
- 21. Recherche en html Javascript
- 22. Icône sur un graphe JFreeChart XY
- 23. Bitmap XY dans une application MFC
- 24. Exécution HTML via Javascript
- 25. Sauter à une nouvelle page HTML avec JavaScript
- 26. Coloriage de Select élément html par jquery
- 27. changer la classe d'un élément <span> avec JavaScript
- 28. Comment trouver un élément GridView sur button_click?
- 29. Trouver le centre d'un élément dans wpf
- 30. Python: trouver un élément dans un tableau
fermé en double selon http://meta.stackexchange.com/questions/147643/should-i-vote-to- close-a-duplicate-question-even-though-its-beaucoup-newer-and-ha – user123444555621