我试图使用$ document.find获取html页面中元素的位置。但是,它总是未定义的。
这是我的代码。
angular.module('MyApp', []).
controller('myController', function($scope, $document) {
var element = $document.find('my_element');
console.log(element.prop('offsetTop'));
console.log(element.offsetTop);
});
这是html页面。
<div ng-app="MyApp" ng-controller="driversController">
<div id="my_element">Looping with ng-repeat:</div>
.......
</div>
我不想使用jquery和angularjs。 P; easy建议在angularjs.Thanks中执行此操作
答案 0 :(得分:5)
使用jquery .offset()
查找位置。
var offSet = $("#my_element").offset();
console.log(offSet.top);
答案 1 :(得分:2)
通过使用vanilla JavaScript,您可以通过执行element[0]
来访问DOM的偏移值。
var element = $document.find('my_element');
console.log(element.prop('offsetTop'));
console.log(element[0].offsetTop);
console.log(element[0].offsetLeft);
答案 2 :(得分:0)
您可以遍历页面中的每个元素,直到找到所需的元素。
function left_on(el)
{
for (var lx=0, ly=0;
el != null;
lx += el.offsetLeft, ly += el.offsetTop, el = el.offsetParent);
return lx ;// or ly
}