2015-10-20 4 views
7

Я использую следующую директиву https://github.com/d-oliveros/ngSmoothScroll, чтобы сделать материал в этом проекте плавно прокруткой к выбранному элементу.ngSmoothScroll угловая директива не работает

Вот мой код:

... 
<!-- build:js(.) scripts/vendor.js --> 
    <!-- bower:js --> 
    <script src="bower_components/jquery/dist/jquery.js"></script> 
    <script src="bower_components/angular/angular.js"></script> 
    <script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> 
    <script src="bower_components/angular-animate/angular-animate.js"></script> 
    <script src="bower_components/angular-aria/angular-aria.js"></script> 
    <script src="bower_components/angular-cookies/angular-cookies.js"></script> 
    <script src="bower_components/angular-messages/angular-messages.js"></script> 
    <script src="bower_components/angular-resource/angular-resource.js"></script> 
    <script src="bower_components/angular-route/angular-route.js"></script> 
    <script src="bower_components/angular-sanitize/angular-sanitize.js"></script> 
    <script src="bower_components/angular-touch/angular-touch.js"></script> 
    <!-- endbower --> 
    <!-- endbuild --> 
    <script src="bower_components/ngSmoothScroll/dist/angular-smooth-scroll.min.js"></script> 
     <!-- build:js({.tmp,app}) scripts/scripts.js --> 
     <script src="scripts/app.js"></script> 
     <script src="scripts/controllers/initcontroller.js"></script> 
     <!-- endbuild --> 
     <script src="scripts/libs/materialize.min.js"></script> 
     <script src="scripts/libs/angular-materialize.js"></script> 
</body> 
... 

Вот где скрипт включен и внутри моего app.js файла у меня есть:

angular 
    .module('sccateringApp', [ 
    'ngAnimate', 
    'ngAria', 
    'ngCookies', 
    'ngMessages', 
    'ngResource', 
    'ngRoute', 
    'ngSanitize', 
    'ngTouch', 
    'ui.materialize', 
    'smoothScroll' 
    ]) 

'smoothScroll' является фактическим включением зависимости к проекту. Следуя инструкции внутри ссылки, приведенной в начале этого поста это то, что я делаю в моей точке зрения:

<li><a href="#" scroll-to="service-info" container-id="service-info">Contáctame</a></li> 
... 

<section class="service-info" id="service-info"> 
<h1 class="sofia-font">Detalles de Servicio</h1> 
... 

Однако нет гладкой прокрутки происходит, а также, нет никаких предупреждений/ошибок, приведенных либо консоли или jslint на моей задаче grunt serve.

Любая идея, что я могу делать неправильно? Я ОЧЕНЬ новый для углового, и я все еще пытаюсь найти свой путь через него.

+0

Я ищу то же самое. Вам повезло? – sooon

+0

Ваш идентификатор прокрутки и контейнера имеет одинаковый идентификатор элемента, поэтому имеет смысл, что прокрутки не произойдет. – o4ohel

ответ

2

Я не уверен, но это может быть потому, что вы используете идентификатор контейнера по ссылке, а не тег без привязки. Я использую это, чтобы прокручивать элемент в нижнем колонтитуле. Мой код:

//the anchor link in my nav 
<a href="#" scroll-to="footer" duration="2500">Click Me</a> 
... 

//the element I want to scroll to 
<div id="footer"></div> 
... 

Минимизированный версия не работает для меня, так что мои скрипты идут следующим образом:

<script src="/bower_components/angular/angular.js"></script> 
<script src="/bower_components/angular-animate/angular-animate.js"></script> 
<script src="/bower_components/angular-aria/angular-aria.js"></script> 
<script src="/bower_components/angular-messages/angular-messages.js"></script> 
<script src="/bower_components/angular-material/angular-material.js"></script> 
<script src="/bower_components/angular-sanitize/angular-sanitize.js"></script> 

<script src="/bower_components/ngSmoothScroll/lib/angular-smooth-scroll.js"></script> 

<script src="/js/app.module.js"></script> 
<script src="/js/app.controller.js"></script> 
<script src="/js/app.service.js"></script> 

И для модуля:

angular 
    .module('glasser', [ 
     'ngMaterial', 
     'ngSanitize', 
     'smoothScroll' 
    ]) 
0

Он не сделал работа для меня тоже, попробуйте Angular-Scroll. В нем есть демо-версия для тестирования в браузере.

Он также имеет директиву «шпион», поэтому вы можете добавлять классы к элементам, которые находятся в поле зрения.

Смежные вопросы