Я получаю сообщение об ошибке при использовании 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)
?
Вы пробовали [shim config] (http://requirejs.org/docs/api.html#config-shim)? См. Также: http://stackoverflow.com/questions/15471088/requirejs-why-and-when-to-use-shim-config – explunit
@explunit Я попробовал конфигурацию прокладки. Я отредактировал свой вопрос, включив его. Тем не менее, я все еще получаю ту же проблему. – xylar