首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScrollMagic管脚间隔太大

ScrollMagic管脚间隔太大
EN

Stack Overflow用户
提问于 2016-04-06 14:51:27
回答 1查看 10K关注 0票数 1

我刚开始接触ScrollMagic,所以不确定是否有什么明显的东西让我忽略了。

我已经设置了一个码页,它说明了我想要实现的目标,还有一个替代版本,它几乎可以实现我想要的结果,除了一个巨大的差距,我似乎无法消除。

本质上看,有3张幻灯片是堆叠在一起的。当用户滚动时,幻灯片一个接一个地过渡到显示下面的一个.

当滚动通过最后的幻灯片时,页面上的其余内容应该向上滚动,就像它附在最后一张幻灯片的底部一样,并且从那时起应该像普通页面一样在功能上滚动。

目前,包含所有幻灯片的容器透明地与主体内容的其余部分重叠,直到最后一张幻灯片从视口顶部消失,并且是ScrollMagic在这样做。

代码页中的粉红条旨在显示幻灯片容器底部完成的位置。

以下是相关代码:

代码语言:javascript
复制
function initController() {
    controller = new ScrollMagic.Controller({
        globalSceneOptions: {
            triggerHook: "onLeave"
        }
    });

    controller.scrollTo(function(pos) {
        TweenMax.to(window, 1, {
            scrollTo: {
                y: pos,
                autoKill: true
            }
        });
    });
}

function initAnimation() {
    wipeAnimation = new TimelineMax();

    $.each(ui.slides, function(i, slide) {
        wipeAnimation
            .add(TweenMax.to(slide, 2000, {y: '0'}))
            .add(TweenMax.fromTo(slide, 5000, {y: '0'}, {
                y: '-100%',
                onComplete: function() {
                    if (i < ui.slideCount - 1) { // don't run on last slide
                        updateActiveSlide(ui.slides[i + 1]); // activate next slide
                    }
                },
                onReverseComplete: function() {
                    updateActiveSlide(slide);
                }
            }));
    });
}

function initScene() {
    scene = new ScrollMagic.Scene({
        triggerElement: ui.el,
        duration: '100%'
    })
    .setTween(wipeAnimation)
    .setPin(ui.el, {
        pushFollowers: false
    })
    .addTo(controller);
}
EN

回答 1

Stack Overflow用户

发布于 2016-04-06 16:05:06

默认情况下,这是为了停止文档中与下列元素重叠的固定元素。

您需要将“pushFollowers”属性设置为false:

代码语言:javascript
复制
function initScene() {
    scene = new ScrollMagic.Scene({
        triggerElement: ui.el,
        duration: '100%'
    })
    .setTween(wipeAnimation)
    .setPin(ui.el, {
        pushFollowers: false
    })
    .addTo(controller);
}

见文档:http://janpaepke.github.io/ScrollMagic/docs/ScrollMagic.Scene.html#setPin

代码语言:javascript
复制
// pin element and push all following elements down by the amount of the pin duration.
scene.setPin("#pin");

// pin element and keeping all following elements in their place. The pinned element will move past them.
scene.setPin("#pin", {pushFollowers: false});

工作示例:https://codepen.io/alexgill/pen/MyOMKP (从您的代码分叉)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36454715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档