Перезапись глобальных параметров сцены в ScrollMagic

Я пытаюсь создать сайт с помощью ScrollMagic, и у меня есть проблема: я определяю параметр реверса как ложный глобально, и я, похоже, не могу перезаписать этот параметр в определенной сцене.

У меня есть несколько сцен, и мне нужна только одна или две сцены для обратной анимации. Было бы намного проще сделать параметр reverse ложным глобально и установить обратную анимацию для определенных сцен.

Вот мой код:

var controller;
$(document).ready(function($) {
    controller = new ScrollMagic({
        globalSceneOptions: {
            reverse: false
        }
    });
});

. . .

$(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();
});

Анимация не воспроизводится в обратном направлении, поэтому свойство reverse: true, установленное в сцене, кажется, не принимает глобальную настройку.

Возможно ли это сделать? Надеюсь, вы можете мне помочь! Спасибо!


person Péter Csaba    schedule 22.08.2014    source источник


Ответы (1)


Зия!

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();

надеюсь это поможет.

person Jan Paepke    schedule 05.09.2014
comment
Спасибо за Ваш ответ! Это было мое плохое. Я предполагал, что это должно работать по-другому, и позже понял цитируемую часть в документации. Ваше решение должно работать для того, что я искал. - person Péter Csaba; 17.09.2014