Подтвердить что ты не робот

Как скрыть элемент при прокрутке страницы?

Хорошо, я немного в тупике.

Я пытаюсь найти способ angular, исходящий из фона jQuery.

Проблема: Я бы просто хотел скрыть фиксированный элемент, если окно не прокручивается. Если кто-то прокручивает страницу, я хотел бы скрыть элемент.

Я попытался создать настраиваемую директиву, но я не мог заставить ее работать, поскольку события прокрутки не срабатывали. Я думаю простой контроллер, как показано ниже, но он даже не запускается.

Контроллер:

.controller('MyCtrl2', function($scope,appLoading, $location, $anchorScroll, $window ) {
   angular.element($window).bind("scroll", function(e) {
       console.log('scroll')
       console.log(e.pageYOffset)
       $scope.visible = false;
   })
})

VIEW

<a ng-click="gotoTop()" class="scrollTop" ng-show="{{visible}}">TOP</a>

ПРОСМОТР http://www.thewinetradition.com.au/new/#/portfolio

Будем очень благодарны за любые идеи.

4b9b3361

Ответ 1

Основная директива будет выглядеть так. Один из ключевых моментов - вызов scope.$apply(), поскольку прокрутка будет выполняться за пределами обычного цикла digest.

app = angular.module('myApp', []);
app.directive("scroll", function ($window) {
    return function(scope, element, attrs) {
        angular.element($window).bind("scroll", function() {
            scope.visible = false;
            scope.$apply();
        });
    };
});

Я нашел этот jsfiddle, который демонстрирует это красиво http://jsfiddle.net/88TzF/