web-dev-qa-db-fra.com

angularJS - obtenir les positions x et y par clic de souris en div

J'ai créé une fonction qui devrait ajouter un élément à la position sur laquelle j'ai cliqué à l'intérieur d'un div. Maintenant, le problème avec cette fonction est, chaque fois que je clique, elle prend la position x & y du document, pas la position x & y à l'intérieur du div. Donc ce que je veux vraiment, c'est que le coin supérieur gauche de mon div devrait donner x = 0 & y = 0, mais je ne sais pas si c'est possible? Et je suppose qu'il y a une autre façon de le faire ..

$scope.addOnClick = function(event) {
        $scope.items.Push( {
            "label": "Click",
            "value": 100,
            "x": event.x-50,
            "y": event.y-50,
        })
}
35
M. Winterinho

Vous devez changer event.x à event.offsetX et event.y à event.offsetY

Vous n'avez pas ajouté la définition du modèle mais je l'ajouterai juste au cas où:

<div ng-click="addOnClick($event)"></div>
60
Liviu T.

Dans le fichier html, utilisez:

<div (click)="test($event)"></div>

Et dans la fonction du fichier ts ::

function test(e){
 console.log(e.clientX);
 console.log(e.clientY);
}
0
Dudu Madeira