gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:45:53 24 4
gpt4 key购买 nike

好吧,我有点困惑。

我试图考虑来自jQuery背景的 Angular 方式。

问题:
如果窗口不滚动,我只想隐藏一个固定的元素。如果有人向下滚动页面,我想隐藏该元素。

我尝试创建一个自定义指令,但由于滚动事件未触发,因此无法使其正常工作。我在想像下面这样的简单 Controller ,但是它甚至没有运行。

Controller :

.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

任何想法将不胜感激。

最佳答案

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

关于angularjs - 滚动页面时如何隐藏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20253322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com