Trong phần chức năng liên kết của chỉ thị, chúng tôi có quyền truy cập đối tượng element
. Tôi muốn xác định xem đối tượng element
có nằm trong chế độ xem hiện tại hay không nếu nó có sẵn.Làm cách nào để nhận vị trí x và y của một phần tử trong chỉ thị AngularJS
Tôi hiện có như sau:
link: function (scope, element, attrs, controller) {
var page = angular.element(window);
page.bind('scroll', function() {
var windowScroll = page[0].pageYOffset,
windowHeight = page[0].innerHeight;
// elementScroll = element.xpos; - this is undefined?
// elementScroll = element.getBoundingClientRect().top - this does not work... undefined?
// elementScroll = element[0].getBoundingClientRect().top - this does not work... undefined?
// ... logic follows that if elementScroll is between windowScroll & windowScroll + windowHeight it is visible!
});
Tôi chỉ không thể có vẻ để có được x và vị trí y cho yếu tố cụ thể của tôi (chỉ thị có thể được lặp đi lặp lại nhiều lần).
Xin lưu ý rằng tôi không định cài đặt hoặc sử dụng jQuery trong ứng dụng của mình.
Nếu bạn bao gồm jquery, phần tử sẽ là phần tử jquery mà bạn có thể sử dụng .offset() để có được vị trí x và y. – gustavodidomenico
Không có jQuery - Tôi quên đề cập đến điều đó! –
Vì vậy, hãy để các bậc thầy vanilla-js giúp chúng tôi ... – gustavodidomenico