与famo.us一起无限视差滚动

与famo.us一起无限视差滚动,famo.us,Famo.us,我有一个滚动视图和一个图像作为背景,在不同的表面上有较低的z索引。我想以scrollview一半的速度滚动图像 关于如何实现它,你有什么想法吗?我不能给你一个完整的解决方案,但这会让你走上一条体面的道路 1) Famo.us已经在多个滚动视图上进行了工作。每种方法都有一个稍微不同的方法来获取“scrollTop”值 前面创建的仅为列表中第一个可见元素提供scrollTop值。因此,在本例中,您可以获得已滚动掉的元素数量,并自己计算实际值。或者,如果scrollView中的元素数量较少且数量有限

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


关于如何实现它,你有什么想法吗?

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

1) Famo.us已经在多个滚动视图上进行了工作。每种方法都有一个稍微不同的方法来获取“scrollTop”值

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

  • 第二个scrollView是内部调用LimitedScrollView。我还没有太多的经验,但无论如何,它应该给你正确的价值观

2) ScrollView在scroll上触发事件。使用它来更新可传递函数的值

伪代码:

scrollView.on('scroll', function(){
  transitionable.set(scrollView.scrollTop)
});
background.transformFrom(function(){
  return Transform.translate(0, -transitionable.get()/2, 0);
});
3) 现在,您可以将背景的变换值绑定到可转换对象

伪代码:

scrollView.on('scroll', function(){
  transitionable.set(scrollView.scrollTop)
});
background.transformFrom(function(){
  return Transform.translate(0, -transitionable.get()/2, 0);
});
现在,事情应该正常运转了


希望这能有所帮助。

你能说说到目前为止你在这方面做了哪些尝试或发现了什么吗?我找到了一种方法,可以使用比屏幕高度更大的固定大小图像。有很多教程解释了这一点。这个解决方案的问题是,我在scrollview中的项目计数不同,这使得我只有一个参数需要更改,即速度。我希望速度固定为scrollview速度的一个比例。这意味着我必须不时地动态添加背景图像,否则可能会有其他解决方案,嗯,写这篇文章我有了一个想法。也许如果我使用2个滚动视图,我可以做我想做的事情你是说有一个永远环绕的背景滚动视图?这听起来是一个有趣的方法(就像反馈!)。你试过了吗?你能在这里发布一个自我回答吗?应该可以。一般来说,transitionable是famo.us中对开发人员来说最重要的一个类。