使用javascript

时间:2016-03-15 19:20:28

标签: javascript jquery html css angularjs

我试图使用$ 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中执行此操作

3 个答案:

答案 0 :(得分:5)

使用jquery .offset()查找位置。

var offSet = $("#my_element").offset();
console.log(offSet.top);

示例:https://jsfiddle.net/o9krfznt/1/

答案 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 
        }