小编典典

实现动态滚动的算法

algorithm

创建动态滚动实现有哪些好的算法?该功能将在自定义UI列表上进行测试。当我针对移动设备(那些没有内置此功能的设备)时,来自不同编程领域的任何算法或代码示例也可能适用。


阅读 327

收藏
2020-07-28

共1个答案

小编典典

我最近自己实施了一个。这些是我采取的步骤。

  1. 您需要测量光标的速度(鼠标光标或手指)
  2. 实现一个简单的粒子物理循环。有关如何执行此操作的信息,请参见此处
  3. 使用从滚动平面的宽度和视口的宽度派生的数学给您的粒子“边界”
  4. 连续将鼠标速度和粒子速度之间的差加到粒子的速度上,因此只要粒子在移动,它的速度就会“匹配”鼠标的速度。
  5. 用户抬起手指后,立即停止执行步骤4。物理循环负责惯性。
  6. 添加您的个人喜好,例如“保险杠”边距,以及平滑滚动的“锚定”点,这些点在zeno悖论上起作用以计算运动。
  7. 我差点忘了:取自上面的坐标,并将其用作滚动平面的位置。

我可能会很快将此代码开源。您多久需要一次?

编辑:更改了链接。抱歉,指向错误的页面。edit2:还是不?无论如何,我链接到的原始页面是当前链接页面上的第一个链接。

2020-07-28