5

我对 ScrollMagic 有疑问。它在触发元素上根本没有响应。下面我将提供代码:

的CSS:

.container {
    height: 3000px;
}

#trigger {
    position: relative;
    top: 300px;
}

.katrori {
    opacity: 0; 
    position:relative; 
    top:300px; 
    background-color:#eee; 
    height:400px; 
    padding:25px; 
    font-family:Arial, Sans-serif;
    font-weight:bold;
}

和JS:

$(document).ready(function($)) {
    var controller = new ScrollMagic();
    var tween = TweenMax.to(".katrori", 0.5, {opacity: 1, backgroundColor: "#1d1d1d"})
    var scene = new ScrollScene({triggerElement: "#trigger"})
    .setTween(tween)
    .addTo(controller);
});

我错过了什么?

4

1 回答 1

2

JS主要有两个错误。

  1. 你有一个parenthesis(")") 太多了。

    $(document).ready(function($)) {
                                ^^ --> one of those
    
  2. 您正在使用 ScrollMagic 版本>=2(您应该这样做),但使用版本1中的功能。这是他们当前版本的文档

    container现在初始化and的正确方法scene是:

    var container = new ScrollMagic.Container({...});
    var scene = new ScrollMagic.Scene({...});
    

当您应用这些更改时,您的工作示例code可能如下所示

$(document).ready(function ($) {
    var controller = new ScrollMagic.Controller(),
        tween = TweenMax.to(".katrori", 0.5, {opacity: 1, backgroundColor: "#1d1d1d"}),
        scene = new ScrollMagic.Scene({triggerElement: "#trigger"});

    scene
        .setTween(tween)
        .addTo(controller);
});

您可能还想查看他们的示例

编辑

补充要点2:

ScrollMagic版本1中,container并以这种方式在脚本scene中初始化:

var controller = new ScrollMagic({ *global options applying to all scenes added*});
var scene = new ScrollScene({ *options for the scene* })

在版本2中,同样的事情是这样完成的:

var container = new ScrollMagic.Container({...});
var scene = new ScrollMagic.Scene({...});

这就是为什么您的脚本以前不起作用的原因。styling仍然在CSS.

于 2016-02-12T15:31:49.667 回答