0

我有一个滚动视图和一个图像作为不同表面的背景,z-index 较低。我想以滚动视图的一半速度滚动图像。

关于如何实施它的任何想法?

4

1 回答 1

0

我不能给你一个完整的解决方案,但这应该会让你走上一条不错的道路。

1) Famo.us 开发了多个滚动视图。每个都有一个稍微不同的方法来从中获取 'scrollTop' 值。

  • 之前创建的只为您提供列表中第一个可见元素的 scrollTop 值。因此,在这种情况下,您可以获取已滚动的元素数量并自己计算实际值。或者,如果您在 scrollView 中有少量且数量有限的元素,您应该将所有元素包装在单个视图中并将单个视图传递给 scrollView。这样 Famo.us 必须对屏幕外元素进行计算,但如果元素数量足够少,它可以使许多动画/计算变得更加容易。

  • 第二个滚动视图在内部调用 LimitedScrollView。我还没有太多经验,但无论如何它应该给你正确的值。

2) ScrollView 在滚动时触发事件。使用它来更新可转换的值。

伪代码:

scrollView.on('scroll', function(){
  transitionable.set(scrollView.scrollTop)
});

3) 您现在可以将背景的变换值绑定到可转换对象。

伪代码:

background.transformFrom(function(){
  return Transform.translate(0, -transitionable.get()/2, 0);
});

现在,事情应该可以正常工作了。

希望有帮助。

于 2014-07-31T12:47:57.943 回答