【问题标题】:Using Skrollr and SkrollrMenu with RequireJS将 Skrollr 和 SkrollrMenu 与 RequireJS 一起使用
【发布时间】:2013-10-15 19:56:30
【问题描述】:

使用 RequireJS 使用 skrollr 和 skrollrMenu 时出现错误。这是我的 main.js 文件:

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;
            },
        });
    }
});

当我加载页面时,我在 skrollr.menu 文件中收到错误 Uncaught TypeError: Cannot call method 'relativeToAbsolute' of undefined

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

然后是console.log(s)的输出。这是否意味着skrollr.menu.initconsole.log(s) 之前运行?

【问题讨论】:

标签: javascript requirejs skrollr


【解决方案1】:

更新到 skrollr-menu 0.1.6(我猜你正在运行 0.1.5)。

【讨论】:

  • 天哪,如果没有这个答案,我将需要几天的调试时间;) 在项目中保持外部 js 库最新的最佳策略是什么?
猜你喜欢
  • 1970-01-01
  • 2013-02-14
  • 2014-02-20
  • 1970-01-01
  • 2014-10-06
  • 2023-04-09
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多