我正在尝试使用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?
答案 0 :(得分:0)
来自shim doc:
为不使用define()声明依赖项并设置模块值的较旧的传统“浏览器全局”脚本配置依赖项,导出和自定义初始化。
fullpage.js
和scrolloverflow.js
都是AMD模块。
您不能将 shim 用于这些模块。
您可以在define
函数中定义模块的关系。 fullpage.js 需要在全局范围内定义 IScroll 。你需要一个hack:加载 IScroll 并在全局范围内定义它:
define(["jquery","scrolloverflow","fullpage"], function($, IScroll) {
window.IScroll = IScroll;
...
});