角度定制自动滚动顶部指令

时间:2016-08-10 22:34:28

标签: javascript jquery angularjs

更改路线时,新加载的页面不会滚动到顶部。我在ui-view元素中添加了@media only screen and (min-width: 9999px) { .top-bar { ...blah.blah.blah 指令,但它没有一直滚到顶部,可能有50px的偏移,我认为它必须做w /顶部固定导航栏。

我添加了一个自定义滚动指令,它完成了工作,新页面滚动到顶部。我有这个指令的唯一障碍是不让我向下滚动。我不熟悉指令,我确信自定义指令中缺少更多代码。有人可以帮我吗?

这是指令:

meta.foundation-mq-topbar {
  font-family: "/only screen and (min-width:9999px)/";
  width: 9999px;
}

这是html代码:

autoscroll = true

我希望我可以使用angular.module('myapp') .directive("scrollTop", function ($window) { return function(scope, element, attrs) { angular.element($window).bind("scroll", function() { scope.visible = false; $window.scrollTo(0, 0); scope.$apply(); }); }; }); 指令,但是有一个很小的偏移量,它几乎滚动到顶部。也许我可以解决该指令而不是构建自定义指令。我感谢你的帮助,仍然是AngularJS的新手。

1 个答案:

答案 0 :(得分:1)

autoscroll用于在视图更新时滚动到ui-view元素的顶部。因此,如果您希望在状态发生变化时滚动整个窗口。您可以添加一个运行块来观察状态更改并滚动它。

angular.module('myapp').run(['$rootScope','$window',function($rootScope,$window){
    $rootScope.$on("$stateChangeSuccess",function(){
         $window.scrollTo(0, 0);
    })
}]);