【问题标题】:Passing a variable to init function (variable scope issue)将变量传递给 init 函数(变量范围问题)
【发布时间】:2016-10-23 19:53:28
【问题描述】:

我正在使用 stellar.js 来实现视差图像效果。我正在尝试将变量传递给 stellar.js 初始化函数,但它不起作用。该插件在我的 $(document).ready() 函数中初始化(不是必需的),我还做了一些数学运算,因为在初始化 stellar.js 时我无法对数字进行硬编码。这是有问题的代码。

 $(document).ready(function() {
   var $height = $("img").height(); // i.e. $height = 1000px
   var $offset = $height * .75;     // i.e. $offset = 750px;

    $(window).stellar({
      horizontalScrolling: false,
      verticalOffset: $offset
    });

 )};

如果我只是在 stellar init 函数中输入 750 作为verticalOffset,它就可以正常工作。但是,使用 $offset 变量不起作用,因为它似乎超出了 $(window).stellar() 函数的范围。谁能帮我解决这个问题?非常感谢任何帮助。

【问题讨论】:

    标签: jquery variables scope stellar.js


    【解决方案1】:

    您是否尝试在 stellar.js 文件代码中设置断点以查看在初始化期间在那里传递了哪些选项(实际上,我得到了与传递相同的值)?如果您认为,范围的问题,也许您应该尝试这样的事情:

    $(window).stellar({
          horizontalScrolling: false,
          verticalOffset: $("img").height() * .75
        });

    顺便说一句,您的代码中存在打印错误,因为它应该是 }); 而不是 )}; 在最后

    【讨论】:

    • 我从来没想过,但它确实有效!非常感谢你!我一直在编写代码并盯着它看了好几个小时,需要一双新的眼睛。
    猜你喜欢
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2012-10-19
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多