EquularJS 'scrollTop' эквивалент?

Я хочу реализовать что-то подобное в директиве AngularJS:

https://github.com/geniuscarrier/scrollToTop/blob/master/jquery.scrollToTop.js

Это довольно просто, когда вы не находитесь в верхней части страницы, он будет исчезать кнопкой, чтобы прокрутить вверх:

 $(window).scroll(function() {
                if ($(this).scrollTop() > 100) {
                    $this.fadeIn();
                } else {
                    $this.fadeOut();
                }
            });

Однако мне трудно найти, как получить текущее местоположение прокрутки в Angular. Я бы предпочел не использовать jQuery только для этой единственной вещи.

Спасибо!

Ответы

Ответ 1

$window.pageYOffset

Это свойство из окна $service

Ответ 3

Ввести окно $в ваш контроллер, и вы можете получить положение прокрутки в прокрутке

var windowEl = angular.element($window);
var handler = function() {
    console.log(windowEl.scrollTop())
}
windowEl.on('scroll', handler);

Fiddle

Адаптация из другого fooobar.com/questions/187162/...

Ответ 4

Вы можете использовать

angular.element(document).bind('scroll', function() {
    if (window.scrollTop() > 100) {
        $this.fadeIn();
    } else {
        $this.fadeOut();
    }
});

Ответ 5

Вы можете использовать как polyfill здесь ссылка

function offset(elm) {
  try {return elm.offset();} catch(e) {}
  var rawDom = elm[0];
  var _x = 0;
  var _y = 0;
  var body = document.documentElement || document.body;
  var scrollX = window.pageXOffset || body.scrollLeft;
  var scrollY = window.pageYOffset || body.scrollTop;
  _x = rawDom.getBoundingClientRect().left + scrollX;
  _y = rawDom.getBoundingClientRect().top + scrollY;
  return { left: _x, top: _y };
}