Javascript angularJS-获取x&;div中鼠标单击的y位置
我做了一个函数,应该在我在div中单击的位置上添加一个项目。现在这个函数的问题是,每次我单击时,它都会获取文档的x&y位置,而不是div中的x&y位置。所以我真正想要的是,div的左上角应该给出x=0&y=0,但我不知道这是否可能?我想还有另外一种方法Javascript angularJS-获取x&;div中鼠标单击的y位置,javascript,position,angularjs,Javascript,Position,Angularjs,我做了一个函数,应该在我在div中单击的位置上添加一个项目。现在这个函数的问题是,每次我单击时,它都会获取文档的x&y位置,而不是div中的x&y位置。所以我真正想要的是,div的左上角应该给出x=0&y=0,但我不知道这是否可能?我想还有另外一种方法 $scope.addOnClick = function(event) { $scope.items.push( { "label": "Click", "value": 100,
$scope.addOnClick = function(event) {
$scope.items.push( {
"label": "Click",
"value": 100,
"x": event.x-50,
"y": event.y-50,
})
}
您需要将
event.x
更改为event.offsetX
和event.y
更改为event.offsetY
您没有添加模板定义,但我将添加它以防万一:
<div ng-click="addOnClick($event)"></div>
对于使用拖动库并希望获得被拖动图元位置的用户:
<div ng-click="OnDrag($event)"></div>
在html文件中,使用:
<div (click)="test($event)"></div>
那正是我要找的!我知道这会很简单:D&是的,我已经添加了模板定义,但我确信那里一切都很好。。谢谢你,伙计!小心Firefox没有offsetX。Firefox现在有了
offsetX
和offsetY
,但它们似乎并不正确。
<div (click)="test($event)"></div>
function test(e){
console.log(e.clientX);
console.log(e.clientY);
}