Смещение суперскроллоромы, анимация должна начинаться при входе секций в область просмотра

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

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

Есть идеи?

var controller = $.superscrollorama({
        triggerAtCenter: true
    });
        // set duration, in pixels scrolled, for pinned element
            var pinDur = 6500;

            // create animation timeline for pinned element
            var pinAnimations = new TimelineLite();
            pinAnimations
                .append([
                    TweenMax.to($('#logo'), .5, {css:{left:'34%'}}),
                    TweenMax.to($('#left, #left2'), .5, {css:{top:'-1055px'}}),
                    TweenMax.to($('#right, #right2'), .5, {css:{top:'-1327px'}})                        
                    ])
                .append([
                    TweenMax.to($('#flash'), .01, {css:{display: 'none'}})
                    ])
                .append([
                    TweenMax.to($('#flash'), .02, {css:{display: 'block'}}),
                    TweenMax.to($('#logo, #left, #right'), .01, {css:{display:'none'}}),
                    TweenMax.to($('#flash, #frame, #stand, #wrapper'), .02, {css:{backgroundColor:'white'}}),
                    TweenMax.to($('#flash'), .02, {css:{display:'none'}})
                    ])
                .append(TweenMax.to($('#this_pin-frame-unpin'), .5, {css:{top:'100px'}}));

            // pin element, use onPin and onUnpin to adjust the height of the element
            controller.pin($('#wrapper'), pinDur, {
                anim:pinAnimations, 
                onPin: function() {
                    $('#heelwrapper').css('height','100%');
                }, 
                onUnpin: function() {
                    $('#wrapper').stop().animate({height: '900px'}, 10);
                }
            });

2 ответа

Хорошо, вы можете заархивировать это, добавив смещение к функции 'onPin':

onPin: function() {
     $('#heelwrapper').css('height','100%');
},
offset: 800 //negative amount of pixels when the animation should start

Я вижу, что вы включили triggerAtCenter: true в вашем контроллере. Какая там конкретная причина того, что triggerAtCenter: false не соответствует вашим потребностям?

triggerAtCenter: анимация срабатывает, когда источник соответствующего элемента находится в центре прокрутки (true). Это может быть изменено здесь, чтобы быть на верхнем / левом краю (false) - по умолчанию: true

Проблема с другим ответом состоит в том, что высота пикселя смещения вашего окна просмотра может измениться, если ваш контент динамический, например, если у вас есть адаптивный веб-сайт.

Другие вопросы по тегам