【问题标题】:ScrollMagic - Add class permanently, not remove when scrolling back upScrollMagic - 永久添加类,向上滚动时不删除
【发布时间】:2018-05-25 16:51:06
【问题描述】:

我要做的就是在 div 第一次滚动到视图中时为其添加一个类,然后将其保留在那里。 (所以,我不想切换它 - 只需触发一次)。我有一个基于将类添加到父 div 的动画,即使我指定了一个方向,当我在检查器中检查它时,它仍然会删除反向滚动上的类。我不希望动画在每次滚动时都运行,而只在第一次运行(然后保持在完成动画状态)。

var controller = new ScrollMagic.Controller();

var scene = new ScrollMagic.Scene({
triggerElement: '#intro',
offset: 50
})
.on("start", function(e) { 
    if (e.scrollDirection === "FORWARD") {
        $('#welcome').addClass('animated');}
    })
.addTo(controller);

我确实尝试添加持续时间,但没有效果。有什么建议吗?

【问题讨论】:

    标签: scrollmagic


    【解决方案1】:

    是的,您可以在场景中添加 .reverse(false)。这将使动画只发生一次,因此如果您向上滚动,它不会关闭类。

    这是一个如何使用它的示例,下面是一个使用它的非常简单演示的链接。还有更多信息,这里是文档的另一个链接。

    reverse(false)

    $(document).ready(function(){
      var controller = new ScrollMagic.Controller();
    
      var scene = new ScrollMagic.Scene({
        triggerElement: '.title',
        triggerHook: .6
      })
      .setClassToggle('.title', 'animate')
      .reverse(false)
      .addIndicators()
      .addTo(controller);
    
    });
    

    CodePen Demo

    【讨论】:

    • 有什么原因这不起作用?我有同样的情况,文本默认有opacity: 0,我通过setClassToggle函数添加visible类并为场景设置reverse: false,但类删除只是场景结束。
    • @zhrivodkin 如果有帮助,我删除了他们网站上滚动魔术示例中的duration 属性。即使使用reverse: false,那也删除了visible
    • @heatherhtml 是的,删除 durationreverse: false 可以正常工作!非常感谢!
    • 如果你改变窗口的宽度,它就会消失
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多