滚动到数组中的下一个元素ID

时间:2016-02-01 10:51:55

标签: javascript html css angularjs

目前,我正在使用角度滚动进行导航,如下所示,它适用于导航栏中的链接:

var ScrollApp = angular.module('myApp.ScrollApp', ['duScroll', 'ngAnimate']).value('duScrollOffset', 60);

ScrollApp.controller('ScrollCtrl', function($scope){
        var container = angular.element(document.getElementById('container'));
        var sectionhome = angular.element(document.getElementById('Home'));
        $scope.toTheTop = function() {
            container.scrollTop(60, 5000);
        };
        $scope.toHome = function() {
            container.scrollTo(sectionhome, 60, 1000);
        };
        $scope.scrollVariable = false;
        $scope.ids = ['Section1', 'Section2', 'Section3'];
    }
);

现在,我的问题是:

如何在视口中使用角度检测当前部分,然后使用ng-click的单个按钮滚动到$scope.ids数组中的下一部分。

此外,一旦在底部,有角度检测底部,并将ng-click更改为从顶部到顶部。

我不能有任何jQuery依赖,我应该提到我可能只是在学习AngularJS。

1 个答案:

答案 0 :(得分:0)

  <a ng-click="gotoSection("Section1")">Go to Section</a>
  <a id="Section1"></a>

 $scope.gotoSection= function(id) {
          // set the location.hash to the id of
          // the element you wish to scroll to.
          $location.hash(id);

          // call $anchorScroll()
          $anchorScroll();
        };