滚动页面时如何隐藏元素?

好吧,我有些困惑。

我试图考虑来自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;

})

})

视图

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

实时预览

http://www.thewinetradition.com.au/new/#/portfolio

任何想法将不胜感激。

回答:

基本指令如下所示。一个关键点是您需要致电,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/

以上是 滚动页面时如何隐藏元素? 的全部内容, 来源链接: utcz.com/qa/402348.html

回到顶部