In jQuery possiamo ottenere posizione di un oggetto con questo:Angularjs ottenere la posizione elemento
$(this).position().left;
Come possiamo ottenere la posizione dell'elemento corrente con AngularJS?
In jQuery possiamo ottenere posizione di un oggetto con questo:Angularjs ottenere la posizione elemento
$(this).position().left;
Come possiamo ottenere la posizione dell'elemento corrente con AngularJS?
È possibile utilizzare prop() da jqlite angolare. per selezionare un elemento è possibile utilizzare querySelector() che restituisce primo elemento di corrispondenza o querySelectorAll(), che restituisce tutte elemento corrispondente
angular.element(document.querySelector('yourelement')).prop('offsetLeft');
o se il "questo" è elemento DOM valido
angular.element(this).prop('offsetLeft');
Esempio per div
è possibile fare riferimento l'oggetto DOM con $ evento in html e passarlo alla funzione sul controller
<div ng-click="myfunction($event)"></div>
controller
$scope.myfunction = function($event){
console.log(angular.element($event.target).prop('offsetLeft'));
}
Demo
app = angular.module('test',[]);
app.controller('testctrl',function($scope){
$scope.myfunction = function($event){
console.log($event);
off =angular.element($event.target).prop('offsetLeft');
angular.element($event.target).text(off)
}
});
.divvy{position:absolute; left:60px;
width:100px; background:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="testctrl" ng-app="test">
<div class="divvy" ng-click="myfunction($event)" >Click to see position</div>
</div>
Grazie per la risposta. Posso usare $ scope per ottenere la posizione? – user1995781
$ scope non è valido Elemento DOM è possibile utilizzare il nome del tag di classe ot in querySelector ('') –
lo si sta utilizzando in un evento click/hover? –