单击时如何读取angularjs中的鼠标位置?

前端之家收集整理的这篇文章主要介绍了单击时如何读取angularjs中的鼠标位置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想获得ng-clicked元素的元素内(x,y)位置.使用clientX和clientY通过页面滚动进行转换.使用pageX和pageY不依赖于滚动,但它是绝对的.这四个属性属于$event对象,可在ng-click指令中使用.我如何计算元素x和y?

在jQuery中我会做类似的事情:

$("#something").click(function(e){
    var parentOffset = $(this).parent().offset(); 
    //or $(this).offset(); if you really just want the current element's offset
    var relX = e.pageX - parentOffset.left;
    var relY = e.pageY - parentOffset.top;
});

但现在,我想在angularjs中(即在控制器内部,而不是在postLink函数内).做这件事的好方法是什么?使用angular.element做同样的事情是否安全?或者有另一种计算我需要的值的方法吗?

编辑澄清:在控制器中,我会尝试:

$scope.onClick = function($event) {
    //currently I can...
    var pageX = $event.pageX;
    var pageY = $event.pageY;
};

但我需要将这些坐标转换为与元素相关的坐标,因为这些元素是绝对的.考虑适当的HTML:

<div ng-click="onClick($event)">Nestor Kirchner</div>

解决方法

这应该让你开始:

$scope.doClick = function(event){

    var x = event.x;
    var y = event.y;
    var offsetX = event.offsetX;
    var offsetY = event.offsetY;

    // you have lots of things to try here,not sure what you want to calculate
    console.log(event,x,y,offsetX,offsetY);
};

和HTML:

<div ng-click="doClick($event)"></div>

请澄清你想要计算的内容?一些例子?

示例代码http://plnkr.co/edit/TnhEliSUgChCaMN4gmYn?p=preview

猜你在找的Angularjs相关文章