В JQuery мы можем получить позицию объекта с этим:Angularjs получить позицию элемента
$(this).position().left;
Как мы можем получить текущее положение элемента с AngularJS?
В JQuery мы можем получить позицию объекта с этим:Angularjs получить позицию элемента
$(this).position().left;
Как мы можем получить текущее положение элемента с AngularJS?
Вы можете использовать prop() из углового jqlite. чтобы выбрать элемент, который вы можете использовать querySelector(), который возвращает первое соответствующий элемент или querySelectorAll(), которые возвращают все соответствующие элемент
angular.element(document.querySelector('yourelement')).prop('offsetLeft');
или если «это» действует дом элемент
angular.element(this).prop('offsetLeft');
Пример для DIV
вы можете ссылаться на объект DOM с $ события в HTML и передать его функции на контроллере
<div ng-click="myfunction($event)"></div>
в контроллере
$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>
Спасибо за ваш ответ. Могу ли я использовать $ scope для получения позиции? – user1995781
$ scope недействителен. Элемент dom вы можете использовать имя тега ot tag в querySelector ('') –
используете ли вы его в любом событии click/hover? –