我来说说思路,不知道你会不会豁然开朗。首先分析下事件,js都是事件驱动的,右侧导航游标移动显然是在某个事件触发下改变的。好了,想一想交互方式,很明显是滚动事件。document.onscroll.接着分析下滚动事件里,js都需要干什么?右侧导航游标是如何变化的呢?显然游标的位置和当前文档的位置有关,没错了,那就是document.scrollTop。scrollTop值随滚动而改变,我们只需要判断这个值,就知道游标需要指到哪了。进一步,为了方便的根据文档的scrollTop值判断出目录导航里的游标的位置,我们需要建立一个表,事先记录下标题及其对应的scrollTop。我们知道,目录中的每一项都对应左侧内容中的某一块,因此在页面渲染完毕后,这些内容离文档顶端的距离就已经确定了。这些距离结合当前文档的scrollTop值,就可以知道目前用户正在浏览哪部分内容了,进而把右侧的游标定位到正确的指示位置上。