让 Famo.us ScrollView 滚动到结束
Posted
技术标签:
【中文标题】让 Famo.us ScrollView 滚动到结束【英文标题】:Make Famo.us ScrollView scroll to end 【发布时间】:2014-08-21 07:24:40 【问题描述】:我正在尝试让 ScrollView 自动滚动到整个元素的末尾。我注意到了
scrollview.setVelocity(-700);
// OR
scrollview.setPosition(1000);
可以解决问题,但是一直到终点所需的数量会使视图跳跃并过快。如果我使用较小的速度,视图只会在原地抖动一点。
有什么方法可以让视图平滑地滚动到最后,以便用户可以看到正在发生的事情?
【问题讨论】:
【参考方案1】:正在寻找如何阻止滚动视图上的弹跳并遇到了这个问题。已经有一段时间了,所以您可能已经弄清楚了,但是弄清楚滚动视图的高度并仅使用 scrollview.setPosition(x) 会将滚动设置到该位置。如果您真的希望它“滚动”,请执行 scrollview.spring.setAnchor(x);然后设置 scrollview.setVelocity(x);两者的结合使它开始滚动。一旦你点击滚动视图,它就会停止,但这通常不是一件坏事。
【讨论】:
哦,如果您不确定如何获取滚动视图的大小以了解我认为的高度 scrollview._scroller.getSize();将返回一个大小数组。我没有要测试的项目。 感谢您的明确指示。不知何故 ScrollView.setPosition(x),其中 x (~500) 来自 _scroller.getSize,视图会向下反弹一点,然后再向上反弹。使用 setAnchor 我可以慢慢地向下移动视图,但在 250 像素之后它会再次反弹。什么样的作品是 setPosition(10000) 或 setPosition(-10000),它们会将视图抛向最后或顶部,但这并不能真正提供良好的用户体验 :(。setAnchor 和 setVelocity 的组合也没有帮助. 您能否验证它是否适合您,以便我查看它是否是我的 famo.us 设置? 很抱歉~为了什么?我现在使用它通过使用 -x 从底部滚动到顶部,其中 x 是 window.innerHeight 值。效果很好。我还使用来自github.com/wgester/famous fork 的滚动视图,我的理解将“很快”合并到主仓库中。虽然它不应该改变它的工作方式。我尝试了测试,但奇怪的是大小返回未定义,未定义,这很奇怪,因为我可以深入到 _scroller 并找到它的大小控制台,但是当我尝试解决它时,它也显示为未定义。 抱歉,“~ 500”是“约 500”的简写。我为此设置了一个 js-fiddle,但在 10000 个工作时我仍然得到相同的结果,而更少的结果只是导致反弹效果:jsfiddle.net/luopio/knmLx/3 你用的是什么版本的名著?如果您在按下按钮之前向下滚动一个像素,它的行为就像它应该的那样。真正的高度是 8000 和 14ish 的速度将使它很好地滚动,但前提是你已经滚动了。如果你还没有,它就好像由于某种原因锚仍然设置为 0 一样。我无法在我的版本上重现它。【参考方案2】:Scrollview 在内部使用弹簧。只需调用 setAnchor() 来设置滚动目标位置。然后,弹簧将通过过渡平滑地移动滚动区域。
【讨论】:
试过scrollview.spring.setAnchor([1, 1, 1])和scrollview.spring.setAnchor(1),用10000到0.1之间的不同数字替换1,但是没有任何反应。可以举个例子吗?以上是关于让 Famo.us ScrollView 滚动到结束的主要内容,如果未能解决你的问题,请参考以下文章