覆盖ScrollMagic中的全局场景选项

Pét*_*aba 2 jquery greensock tweenmax superscrollorama scrollmagic

我正在尝试使用ScrollMagic构建站点,但我遇到一个问题:我将reverse选项定义为false,并且在特定场景下似乎无法覆盖此选项。

我有几个场景,只需要一个或两个场景即可制作反向动画。全局设置反向选项false并为特定场景设置反向动画会容易得多。

这是我的代码:

var controller;
$(document).ready(function($) {
    controller = new ScrollMagic({
        globalSceneOptions: {
            reverse: false
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

。。。

$(document).ready(function($) {
    var tween = TweenMax.from("#works_macbook_top", 1, 
        { rotationX: -80, ease: Sine.easeOut }
    );
    var scene = new ScrollScene({triggerElement: ".works .graphic", duration: 250, offset: -100, reverse: true})
                    .setTween(tween)
                    .addTo(controller);
    scene.addIndicators();
});
Run Code Online (Sandbox Code Playgroud)

动画不会向后播放,因此相反:场景中设置的true属性似乎不会取代全局设置。

有可能做到这一点吗?希望你能帮我!谢谢!

Jan*_*pke 5

西亚!

将场景添加到控制器时,globalSceneOptions将被覆盖。文档中
明确指出:

将场景添加到控制器后,使用ScrollScene构造函数定义的选项将被中设置的选项覆盖globalSceneOptions

因此,根据您的情况,解决方案是在将场景添加到控制器后更改反向选项,如下所示:

var scene = new ScrollScene({triggerElement: ".works .graphic", duration: 250, offset: -100})
    .setTween(tween)
    .addTo(controller)
    .reverse(true) // <- change option after adding to controller
    .addIndicators();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。