3

我正在寻找一种方法来动态更新 skrollr 的绝对位置值。相对定位是不可能的,因为 body 标签是父元素并延伸了页面的整个长度。有问题的对象在 body 标签内的位置固定。

1) 有没有办法动态更新元素的绝对值而不需要重新实例化整个插件?例如将“data-8000-start”更改为“data-9000-start”。使用 jQuery 来更新这些似乎有点不足。

2)使用常量似乎几乎让我到达那里,但如前所述,需要我重新实例化插件。有没有办法将这样的常量传递给刷新方法?

4

2 回答 2

1

首先让我感谢@Prinzhorn 提供了这个神奇的工具。这确实是一件不错的作品,并且一直是一笔巨大的资产。我之前已经为这种事情构建了自定义解决方案,但这确实为它增加了一个轻松的元素。

不过,目前似乎没有支持使用 Skrollr 动态更新数据属性的方法。但正如上面评论中指出的那样,有一个要求。但是,我设法将一些效率很低的东西拼凑在一起。我只在调整大小时执行此操作,因此尽可能少地使用它。

  1. 我使用 JS 从元素中删除所有属性。这似乎非常无用,但我试图让它删除数据属性的任何尝试都没有很好地工作。
  2. 我添加了必要的属性,这些属性被删除了。然后更改了我的动态值并应用了新的数据属性。
  3. 最后,我对 Skrollr 进行了刷新调用,并将其仅应用于我已更新的元素。这有助于确保只更新必要的部分。
于 2013-09-11T13:18:17.750 回答
0

只是为了更新接受的答案,现在您只需动态更改它,然后使用刷新方法:

var sk = skrollr.init();
sk.refresh();
于 2018-07-12T22:37:30.970 回答