找不到带有require.js IScroll的fullpage.js

时间:2016-08-24 13:48:01

标签: requirejs fullpage.js

我正在尝试使用require.js加载fullpage.js。我的配置因此定义了一个路径:

    "fullpage":[
        "lib/jquery.fullPage.min"
    ],
稍后在main.js中我需要start.js来保存业务逻辑。

在start.js中我定义了依赖项和初始化的全页

define(["jquery","fullpage","nerveSlider","fluidbox"], function($,fullpage,nerveSlider,fluidbox) {
...
        $('#fullpage').fullpage({
            anchors: ['shop', 'about', 'details', 'footer'],
            sectionsColor: ['#000000', '#94c9b7', '#6e8394','#333'],
            navigation: true,
            controlArrows: true,
            fixedElements: '.logo',
            loopHorizontal: false,
            navigationPosition: 'left',
            responsiveWidth: 900,
            scrollOverflow: true
        });

因为我使用选项'scrollOverflow:true'fullpage.js需要scrolloverflow库:https://github.com/alvarotrigo/fullPage.js/#including-files

我在main.js中定义为deb

    "scrolloverflow":[
        "lib/scrolloverflow.min"
    ],
    ...
    fullpage: {
        deps: ['scrolloverflow']
    }

不幸的是我收到了一个控制台错误

jquery.fullPage.min.js:8 Uncaught ReferenceError: IScroll is not defined

我做错了什么?换句话说,我怎样才能使用滚动视图的方法IScroll可用于fullpage.js?

1 个答案:

答案 0 :(得分:0)

来自shim doc

  

为不使用define()声明依赖项并设置模块值的较旧的传统“浏览器全局”脚本配置依赖项,导出和自定义初始化。

fullpage.jsscrolloverflow.js都是AMD模块。

您不能将 shim 用于这些模块。

您可以在define函数中定义模块的关系。 fullpage.js 需要在全局范围内定义 IScroll 。你需要一个hack:加载 IScroll 并在全局范围内定义它:

define(["jquery","scrolloverflow","fullpage"], function($, IScroll) {
  window.IScroll = IScroll;
  ...
});