安全下载,经人工审核 精选优质前端模板 支持定制开发咨询 持续更新资源
滚动绘制路线地图 GSAP 特效|左右分屏可全屏展开的活动页 HTML 源码
编号:SVG路径动画

滚动绘制路线地图 GSAP 特效|左右分屏可全屏展开的活动页 HTML 源码

大小 1 MB
总文件 7 个
发布 2026-09-16
更新 2026-09-16
架构 GSAP+SVG
分类 前端资源 - GSAP动画
目录 结构详情
童哲网
童哲网
 ·  专注前端模板资源分享
人工审核 安全可信

页面左半边钉着一张地图,右半边是活动详情:标题、时间、地点、三段正文和一块深色的流程表。往下滚,地图上会有一条线从起点开始一段段被画出来,同时地图跟着线的走向平移——始终把正在画的那一点保持在画面中央,就像有人拿着笔在纸上画,而纸在跟着笔动。中途镜头还会短暂推近再退回,像是在强调某一段路线。读完右侧文案,点“展开地图”,地图会平滑铺满整屏并把路线一次画完,右下角出现收起按钮。

这套结构解决的是活动页的一个老问题:路线信息用静态图讲不清楚,用嵌入式地图又太重且不好控制样式。这里的地图只是一张图加一条 SVG 路径,样式完全自己说了算,还不需要任何地图服务的接口。

这套滚动地图的四个组成

  • 路线是一条 SVG 路径,按滚动进度逐段显形。用描边绘制插件把路径的可见区间从零推到全长,进度绑定滚动,往回滚线就往回收。

  • 镜头跟随靠运动路径反向平移。一个圆点沿路径运动,脚本每帧读取它的坐标,把地图整体平移到该坐标的相反方向,于是点永远停在画面中心。

  • 跟随做了平滑处理。平移不是直接赋值,而是通过一个带缓动的快速补间,所以镜头有轻微的跟拍延迟,比硬跟随自然得多。

  • 展开是把同一条时间线推到底。点击按钮时,地图宽度动画到满屏,同时把整条滚动时间线的进度补间到 1,路线自动画完——不用为“展开态”另写一套动画。

三处值得单独说的实现

其一,跟随用的是预创建的补间而不是每帧新建。脚本一开始就为横纵两个方向各建了一个可复用的快速补间函数:

const xTo = gsap.quickTo(".pov g", "x", { duration: 1, ease: "expo" });

之后每次更新只是调用它并传入新目标值。这类写法专门为“高频改同一个属性”设计,避免了在滚动回调里反复创建补间对象带来的开销与抖动。缓动选了指数型,特点是启动快、收尾极缓,用在跟拍上正好——快速滚动时镜头立刻跟上,停下时轻轻停稳。

其二,推近拉远是一段独立的小动画。它和路线绘制并列在同一条时间线的起点,但只占很短的时长,并设置了往返播放与一次重复。因为整条时间线绑定了滚动,这段缩放也就自然落在滚动行程的某个区间里,用户滚到那儿就会经历一次推近。想把“强调点”挪到别处,改它在时间线上的插入位置即可。

其三,展开与收起都锁了页面滚动。展开时把页面溢出设为隐藏,收起时恢复。这一步不能省:地图铺满屏幕后如果页面还能滚,被钉住的元素与滚动进度会打架,出现地图突然跳位的现象。窗口尺寸变化时脚本还会重置状态并刷新滚动触发器的测量值,这是所有钉住类动画都必须处理的一环。

拿到源码后能改什么

换地图就是换那张图片;换路线则是改 SVG 里那条路径的坐标串。实际操作中最省事的做法是:把地图图片放进任意矢量编辑工具,沿着实际路线画一条线,导出后把路径数据粘过来,起点的圆点坐标同步改成路径的第一个点即可。

视觉上可调的有:线的粗细与颜色(写在分组的描边属性上)、起点与动点的样式、地图的初始缩放与推近倍数(在那段缩放动画的两个数值上)。若路线很长,可以把初始缩放调大一些,让画面更贴近地面。

布局是左右各半的分屏,右侧内容区宽度与内边距都是百分比,改成左文右图只需交换定位。流程表那块深色卡片是独立样式,可以直接复用到别的段落。移动端建议改成上下堆叠,并把地图高度限制在半屏以内。

运行提示:动画依赖 GSAP 及其滚动触发、路径绘制、运动路径三个插件,页面从 CDN 加载,离线或内网环境需先下载到本地并改引用路径。地图为普通图片,可自行替换为任意底图。建议使用近两年版本的 Chrome、Edge、Firefox 或 Safari。详细运行方法请参见压缩包内的帮助文档。

关于滚动路线地图的常见问题

能不能在路线上加沿途站点标记?

可以。在 SVG 里按坐标加上圆点或图标,再给它们各自加一段在时间线特定位置淡入的动画即可,位置换算和路线用的是同一套坐标系。

可以接真实地图服务吗?

可以,但那样就要用对方的接口画线,样式与动画控制会受限。若只是展示一条固定路线,用静态底图加 SVG 路径通常更轻、更可控,也不用担心接口配额。

手机上体验如何?

左右分屏在窄屏上会显得局促,建议加媒体查询改成上下布局。展开全屏地图的交互在触摸设备上同样可用,收起按钮位置固定在右下角。

滚动到底部时地图有时会跳一下?

多为钉住区间与页面实际高度不匹配所致。确认外层区块的高度足够容纳整段动画行程,并在内容或窗口尺寸变化后刷新一次滚动触发器的测量——源码在窗口尺寸变化时已经这么做了。

它适合什么内容

凡是“要讲清一条路线”的页面都合适:城市马拉松与骑行活动、徒步与旅游线路、门店探访路线、物流与配送流程的可视化,甚至可以把地图换成流程图,用同样的方式逐段揭示一个业务流程。路径绘制、镜头跟随、推近强调与全屏展开的完整写法都在源码里,代码量很小,下载后可查看。

模板目录结构

    免责声明

    • 如非特殊说明,本站对本文提供的代码或者素材不拥有任何权利,其版权归原著者拥有。
    • 以上提供的代码或者素材均为作者提供和网友推荐收集整理而来,仅供学习和研究使用。
    • 如有侵犯你版权的,请来信(邮箱:tongzhewangluo@163.com)指出,核实后本站将立即改正。
    • 如有链接无法下载、失效或广告,请通过网站提供的微信联系作者!
    • 以上资源售价只是赞助,不代表代码或者素材本身价格,收取费用仅维持本站的服务器开销。
    • 所有代码素材效果均为演示打包,最终效果请参考演示效果,本站不提供任何技术支持和服务。
    • 代码素材均为虚拟物品,演示和描述无错的情况下,无法进行退换服务。

    最新资源

    胶片卷首屏 GSAP 滚动特效|视频框旋转放大铺满全屏的落地页源码

    电影感首屏

    胶片卷首屏 GSAP 滚动特效|视频框旋转放大铺满全屏的落地页源码
    滚动绘制路线地图 GSAP 特效|左右分屏可全屏展开的活动页 HTML 源码

    SVG路径动画

    滚动绘制路线地图 GSAP 特效|左右分屏可全屏展开的活动页 HTML 源码
    十二类活动体验各占独立页的度假酒店预订 HTML 建站模板,含日期选择订房条与山地海滨双场景首页

    乐斯泰

    十二类活动体验各占独立页的度假酒店预订 HTML 建站模板,含日期选择订房条与山地海滨双场景首页
    科室与医生档案资料分层呈现的医疗急救 HTML 建站模板,首屏常驻急救热线与在线预约挂号入口

    瑞思克

    科室与医生档案资料分层呈现的医疗急救 HTML 建站模板,首屏常驻急救热线与在线预约挂号入口
    五类快递产品各占独立页的物流配送 HTML 建站模板,含仓储服务页与在线报价单

    艾派瑞

    五类快递产品各占独立页的物流配送 HTML 建站模板,含仓储服务页与在线报价单
    纯 CSS 水面涟漪特效|同心圆环扩散的写实波纹源码

    水波涟漪动画

    纯 CSS 水面涟漪特效|同心圆环扩散的写实波纹源码