2013-10-15 2 views
0

Я получаю сообщение об ошибке при использовании skrollr и skrollrMenu с использованием RequireJS. Это мой main.js файл:Использование Skrollr и SkrollrMenu с RequireJS

require.config({ 
    paths: { 
     jquery: '../bower_components/jquery/jquery', 
     skrollr: '../bower_components/skrollr/src/skrollr', 
     skrollrMenu: '../bower_components/skrollr-menu/src/skrollr.menu' 
    }, 
    shim: { 
     skrollrMenu: { 
      deps: ['skrollr'] 
     } 
    } 
}); 

require(['app', 'jquery', 'skrollr', 'skrollrMenu'], function (app, $) { 
    'use strict'; 

    window.onload = function() { 
     var s = skrollr.init(); 

     console.log(s); 
     // //The options (second parameter) are all optional. The values shown are the default values. 
     skrollr.menu.init(s, { 
      //skrollr will smoothly animate to the new position using `animateTo`. 
      animate: true, 

      //The easing function to use. 
      easing: 'sqrt', 

      //How long the animation should take in ms. 
      duration: function(currentTop, targetTop) { 
       //By default, the duration is hardcoded at 500ms. 
       return 500; 

       //But you could calculate a value based on the current scroll position (`currentTop`) and the target scroll position (`targetTop`). 
       //return Math.abs(currentTop - targetTop) * 10; 
      }, 
     }); 
    } 
}); 

Когда я загрузить страницу, я получаю ошибку Uncaught TypeError: Cannot call method 'relativeToAbsolute' of undefined на данный момент в файле skrollr.menu:

targetTop = _skrollrInstance.relativeToAbsolute(scrollTarget, 'top', 'top'); 

Затем следует выход console.log(s). Означает ли это, что skrollr.menu.init работает до console.log(s)?

+0

Вы пробовали [shim config] (http://requirejs.org/docs/api.html#config-shim)? См. Также: http://stackoverflow.com/questions/15471088/requirejs-why-and-when-to-use-shim-config – explunit

+0

@explunit Я попробовал конфигурацию прокладки. Я отредактировал свой вопрос, включив его. Тем не менее, я все еще получаю ту же проблему. – xylar

ответ

1

Обновление до skrollr-menu 0.1.6 (я думаю, вы используете 0.1.5).

+0

Это отсортировано, спасибо (и для skrollr)! – xylar

+0

oh man без этого ответа. Я бы отлаживал дни;) Какова лучшая стратегия для поддержания современных библиотек js в проекте? – Advanced

+0

@Advanced http://bower.io/, но skrollr недоступен через bower atm – Prinzhorn

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