入门 / 工作原理

工作原理

intent-link 会观察用户在页面上的移动,并估计用户正接近哪个可见目标。当信号足够强时,它会调用该目标的 onIntent 函数。

1 · 观察移动

在桌面端,它读取指针移动;在触摸设备上,它读取滚动。只有用户交互后才会启动,移动停止时会再次休眠。

2 · 判断目标

引擎会将用户的移动与当前可见的意图目标进行比较。视口外的目标不会参与计算。

3 · 执行工作

当某个目标足够可能被选择时,它的 onIntent 回调会执行一次。用户移开后再靠近时,可以再次执行。

桌面端与移动端

  • 在桌面端,引擎跟踪指针的二维移动。
  • 在移动端,引擎跟踪垂直滚动,并在第一次滚动时启用。
  • 隐藏或离屏的目标会被忽略,包括被响应式 CSS 隐藏的元素。

物理学思路

可以把每个目标想成一个小小的引力井。移动产生动能,与目标的距离产生势能。快速的指针或滚动仍有前进的动力,而靠近目标时的缓慢移动更像正在停驻。引擎使用类似热力学的规则,把这些低能量的落点视为更可能的选择。

浏览器的移动数据会有细小跳动和误差。卡尔曼滤波器会在物理计算前平滑这些噪声。简单来说,它帮助区分有意的移动和不稳定的测量值。这些都发生在库内部,应用只会接触到 onIntent

点击阅读研究论文。在 ACM 正式发布前,这是一个占位链接。