滚动页面时如何隐藏元素?
好吧,我有些困惑。
我试图考虑来自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