angular - 滚动到div元素显示上的元素可见

时间:2016-02-04 06:36:42

标签: angularjs

当此元素变为可见时,尝试管理角度以自动滚动到特定的div元素。

已经搜索并尝试了几个小时(不开玩笑)但没有成功。

到目前为止尝试了几个模块

  • '角滚动'
  • '角-UI-滚动'
  • 其他一些我已经忘了

并且不能让他们中的一个工作(或者仅在ng-click上)。

我到底有多远?

要回答这个问题;我发现了一个女巫基本上滚动的例子但不是我想要的东西。

e.g。

<button ng-click="scrollToHash()">Scroll</button>
..
..
<div id="#div">
  ..
</div>

-

function scrollController ($scope, User, $location, $anchorScroll) {
  $scope.scrollToHash = function () {
    $scope.hash('div');
    $anchorScroll();
  };
};

这样我就无法对其上的任何“动画持续时间”进行调整。 我知道应该工作的是在元素上设置$ watch并在显示元素时调用函数。

没有到达任何地方,所以我请求你们帮忙。

Angular还是新手,所以请不要责怪这个新手!

由于

2 个答案:

答案 0 :(得分:1)

尝试使用nh-showng-hide显示/隐藏元素,然后在用于显示/隐藏元素的属性上进行监视。关于滚动,你已经有了解决方案。

答案 1 :(得分:1)

我创建了一个服务来让我的滚动进行。你可以试试这个。

控制器:

app.controller("scrollController", function ($scope, scrollToTopService) {
"use strict";

    $scope.scrollToHash= function () {
       scrollToTopService.scrollToTop();
    };
});

服务:

app.service('scrollToTopService', function ($location, $anchorScroll) {
"use strict";    
    this.scrollToTop =  function () {
       $anchorScroll.yOffset = 80; //I want it top drop 80px from id. You can remove this.
       $location.hash("IdWhereIWantToScroll");
       $anchorScroll();
    };
});

以下是您的观点:

<button ng-click="scrollToHash()">Scroll</button>
..
..
<div id="IdWhereIWantToScroll">
..
</div>

希望这会有所帮助。祝你好运。