javascript - Angularjs 获取元素位置

标签 javascript jquery angularjs

在 jQuery 中,我们可以通过以下方式获取对象的位置:

$(this).position().left;

我们如何使用 AngularJS 获取当前元素位置?

最佳答案

您可以使用 Angular jqlite 中的 prop()。要选择一个元素,您可以使用返回第一个匹配元素的 querySelector() 或返回所有匹配元素的 querySelectorAll()

angular.element(document.querySelector('yourelement')).prop('offsetLeft');

或者如果您的“this”是有效的 dom 元素

angular.element(this).prop('offsetLeft');

div 示例

你可以在 html 中用 $event 引用 DOM 对象并将其传递给 Controller ​​上的函数

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

在 Controller 中

$scope.myfunction = function($event){
 console.log(angular.element($event.target).prop('offsetLeft'));

}

演示

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>

关于javascript - Angularjs 获取元素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581260/

相关文章:

javascript - jQuery 图片 slider 问题

javascript - Datatables fnFilter 延迟加载器/指示器

javascript - Jquery preventDefault 在 android 4.4 默认浏览器上不起作用

angularjs - Angularjs 中的指令如何工作?

javascript - 在 iOS/Safari 上无法关闭焦点触发的 Bootstrap Popover 错误

javascript - 如何使用 componentDidMount() 发出多个 axios.get() 请求并将第一个响应值分配给第二个?

javascript - React native (Android) - 创建 URL.createObjectURL(blob)

javascript - 如何通过objx的collect()方法创建json字符串特定字段的数组

javascript - jQuery 触发鼠标移出事件

jquery - 无法在下拉剑道网格 Angular 1 的更改事件中更新文本框值