1

例如,如何将出色的ScrollMagic JS 插件用作 AMD 模块requirejs

我在网上找不到任何对此的引用,并且查看它的代码ScrollMagic似乎并不像它作为 AMD 模块加载一样。

它确实window在模块末尾的级别中定义了 2 个变量:

window.ScrollScene = ScrollScene;
window.ScrollMagic = ScrollMagic;

所以看起来简单的shim不行,因为我需要导出两个变量。有没有办法导出它?

有任何想法吗?

谢谢!

4

1 回答 1

2

我发现了一些对我有用的东西,它有点解决方法,但它确实有效。

在我使用的shim配置中:requirejs

shim: {
    'scrollmagic': {
        deps:['jquery', 'TweenMax'], 
        exports: 'ScrollMagic', 
        init: function() {
            return {ScrollMagic: ScrollMagic, 
                    ScrollScene: ScrollScene};
        }
    }
}

这是为了符合ScrollMagic需要加载库jQuery的事实。GSAP TweenMax

事实证明,使用 the 的init函数shim然后返回两个变量就可以了。

但是 - 这意味着使用ScrollMagic插件应该使用(示例):

define(['scrollmagic'], function(scrollmagic) {
    var magic = new scrollmagic.ScrollMagic();
    var scene = new scrollmagic.ScrollScene({duration: 200});
});

希望这将有助于未来的人......

==编辑==

ScrollMagic 1.3 现在支持 AMD 模式,所以这一切都是不必要的。

于 2014-09-16T13:15:36.670 回答