Как скрыть элемент при прокрутке страницы?
Хорошо, я немного в тупике.
Я пытаюсь найти способ 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
Будем очень благодарны за любые идеи.
Ответы
Ответ 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/