Как получить значение offset (). Top элемента без использования jQuery?

Я программирую одностраничное приложение, используя Angular Framework. Я новичок в этом. я прочелэто руководство чтобы помочь мне понять фундаментальные различия между jQuery и Angular, я хотел бы как можно больше следовать этому руководству и НЕ использовать jQuery.

За исключением того, что jQuery помогает обойти некоторые браузерные несовместимости и предоставляет полезную библиотеку функций, таких как возможность узнать верхнюю позицию элемента из верхней части окна, как в$('element').offset().top, Кажется, ни один простой Javascript не сможет приблизиться, не переписав эту функцию, и в этот момент это не так.быть лучше использовать библиотеку jQuery или jQuery?

В частности, я пытаюсь установить директиву, которая фиксирует элемент на месте, когда его верхняя часть прокручивается до определенной позиции в окне. Вот как это выглядит:

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');
                }
            })

        }
    }
}

Если есть еще лучший способ добиться этого в Angular, который я до сих пор не понимаю, я был бы признателен за совет.

Ответы на вопрос(6)

Ваш ответ на вопрос