1

我正在使用 stellar.js 视差...

有没有办法使用这个插件让元素停在某个位置?

当它到达顶部 300px 时不再视差了吗?

谢谢...

4

1 回答 1

2

Stellar.js 允许您编写位置属性插件,它可以改变滚动期间元素的定位方式。

我不确定您所说的“何时达到 300 像素”是什么意思,但让我们看一个类似的例子来了解它是如何工作的。如果你想限制一个元素可以向下移动多远,你可以编写一个如下所示的插件:

$.stellar.positionProperty.limit = {

  setTop: function($element, newTop, originalTop) {
    var limit = 300;

    // Check if we're going over the limit
    if (newTop - originalTop > limit) {

      // Call default position property with our limited value
      $.stellar.positionProperty.position.setTop.call(null, $element, originalTop - limit, originalTop);

    } else {

      // Otherwise, delegate to the 'setTop' method of the 'position' adapter
      $.stellar.positionProperty.position.setTop.apply(null, arguments);

    }
  },

  // Nothing custom needed here, so we'll just use the built in adapter:
  setLeft: $.stellar.positionProperty.position.setLeft

}

请注意,您还可以访问 'setTop' 和 'setLeft' 函数中的元素(通过 '$elem' 参数),允许您自定义每个元素的逻辑,这样您就可以将元素定位在屏幕顶部,如果那是你所追求的。

现在,我们可以像这样在 Stellar.js 中使用我们的新“限制”插件:

$.stellar({
  positionProperty: 'limit'
}); 
于 2013-01-14T20:56:39.790 回答