Tôi đang lập trình một ứng dụng một trang bằng khung công tác Góc. Tôi mới làm quen với nó. Tôi đã đọc this guide để giúp tôi hiểu những khác biệt cơ bản giữa jQuery và Angular và tôi muốn làm theo hướng dẫn này càng nhiều càng tốt và KHÔNG sử dụng jQuery.Làm thế nào để có được giá trị trên() của một phần tử không sử dụng jQuery?
Ngoại trừ jQuery giúp giải quyết một số tính không tương thích của trình duyệt và cung cấp thư viện chức năng hữu ích, như có thể biết vị trí trên cùng của phần tử từ đầu cửa sổ, như trong $('element').offset().top
. Không có Javascript đơn giản dường như có thể đến gần mà không cần viết lại chức năng này, tại thời điểm nào không phải là nó là một ý tưởng tốt hơn để sử dụng thư viện jQuery hoặc jQuery?
Cụ thể, những gì tôi đang cố gắng là thiết lập một chỉ thị sửa một phần tử tại vị trí khi đầu nó được cuộn đến một vị trí nhất định trong cửa sổ. Dưới đây là hình thức:
directives.scrollfix = function() {
return {
restrict: 'C',
link: function (scope, element, $window) {
var $page = angular.element(window)
var $el = element[0]
var elScrollTopOriginal = $($el).offset().top - 40
$page.bind('scroll', function() {
var windowScrollTop = $page[0].pageYOffset
var elScrollTop = $($el).offset().top
if (windowScrollTop > elScrollTop - 40) {
elScrollTopOriginal = elScrollTop - 40
element.css('position', 'fixed').css('top', '40px').css('margin-left', '3px');
}
else if (windowScrollTop < elScrollTopOriginal) {
element.css('position', 'relative').css('top', '0').css('margin-left', '0');
}
})
}
}
}
Nếu có cách nào tốt hơn để đạt được điều này trong góc mà tôi vẫn chưa nhận được, tôi xin đánh giá cao lời khuyên.
giải pháp được chấp nhận không lấy vị trí cuộn hiện tại vào tài khoản, xem câu trả lời của tôi dưới đây – schellmax