web-dev-qa-db-fra.com

Comment trouver les coordonnées du centre x de l'élément et le décalage de fenêtre associé

je voudrais récupérer le décalage d'élément à partir de ses propres coordonnées de centre x.

comment puis-je le faire?

En fait, je peux trouver le décalage de la fenêtre d'un élément, mais il récupère les coordonnées de la bordure de l'élément comme ceci:

var _position = $(this).offset();
28
itsme

Vous devez utiliser offset() pour obtenir la position supérieure et gauche, puis leur ajouter la moitié des valeurs height() et width(). Cela donne les coordonnées du centre.

var $this = $(this);
var offset = $this.offset();
var width = $this.width();
var height = $this.height();

var centerX = offset.left + width / 2;
var centerY = offset.top + height / 2;

Si vous devez prendre en compte la propriété padding dans vos calculs, utilisez ce qui suit:

var width = $this.outerWidth();
var height = $this.outerHeight();
61
Rob W

Cela peut maintenant être fait via Javascript natif également:

let centerX = targetNode.offsetLeft + targetNode.offsetWidth / 2;
let centerY = targetNode.offsetTop + targetNode.offsetHeight / 2;

où targetNode est l'élément dont vous souhaitez obtenir les coordonnées centrales.

10
Strategist