

新闻资讯
技术学院本文提供一套健壮、兼容性良好的 javascript 方案,通过 performance.getentriesbytype('navigation') 结合 document.referrer 精准识别页面进入方式(外链跳转、地址栏输入、手动刷新),并排除内部导航与历史回退,确保 lottie 预加载动画仅在目标场景下执行。
在构建单页应用或现代多页网站时,为首页添加一个轻量级 Lottie 预加载动画能显著提升首屏感知性能与品牌体验。但关键挑战在于:动画必须智能触发——仅当用户真正“初次抵达”首页时显示,而非每次路由跳转都重复播放。本文将为你实现这一精准控制逻辑。
现代浏览器的 PerformanceNavigationTiming API(通过 performance.getEntriesByType('navigation') 获取)提供了可靠的页面导航类型标识:
⚠️ 注意:window.performance.navigation 已废弃(自 Chrome 90+ 起),必须优先使用 getEntriesByType('navigation'),否则将导致兼容性问题或误判。
navigation.type === 'navigate' 本身无法区分是站内链接还是外部跳转。此时需结合 document.referrer:
✅ 地址栏输入时 document.referrer === '',自然满足 indexOf(hostname) === -1,因此无需额外分支判断。
通过以上方案,你的 Lottie 预加载动画将严格遵循业务需求:仅在用户真正“新进入”首页时呈现,既提升体验,又避免干扰站内流畅导航。