我想在滚动页面时更改用户界面,为此我想获得div元素的位置(顶部和底部),我如何在angularjs中执行此操作?在下面的代码中,我如何获得top_position?
var w=angular.element($window);
w.bind('scroll', function(){
var top_div=angular.element($('#top-div'));
// now here what function should i use ?
console.log("the top of the div having id top-div:"+**top_position**);
});
答案 0 :(得分:3)
你可以在你的指令的链接函数中获取DOM元素,并在任何你想要的地方使用
scope: {...},
restrict: 'AE',
controller: function() {},
link: function($scope, elem, attrs) {
var el = elem[0]; // elem - jQLite element, el - native DOM element
console.log(el.getBoundingClientRect()); // the bounding rect of the element
}
答案 1 :(得分:2)
基本上,您可以使用两个选项来获取所需元素的top
位置。
.offset()
会给你元素和位置的位置可以提供top
& left
职位。但这确实以document
高度计算,而不是以视口高度计算。.scrollTop()
是方法,您可以获得与视口(窗口)相关的高度。我认为这是合适的事情。除此之外,我建议您将代码移至指令,以便更好地控制该DOM。