如何在WordPress网站中实现滚动时的动画对象移动效果?
滚动时对象沿路径移动的实现方案
一、新手友好的插件方案
作为WordPress新手,优先用可视化插件搞定,不用写复杂代码:
- Elementor + Motion.page
- 先安装Elementor(做着陆页的主流可视化编辑器)和Motion.page(专门做滚动触发动画的插件)
- 在Elementor编辑页面添加飞机图片,作为动画对象
- 打开Motion.page面板,新建一个滚动触发动画:
- 触发条件选“页面滚动”,设置动画的滚动范围(比如从页面滚动20%到80%完成路径移动)
- 选中飞机元素,添加“路径跟随”动画,用贝塞尔曲线画出和你示例里一样的虚线路径
- 配置循环规则:当滚动到页面底部(最后区域完全隐藏),自动把飞机重置到路径起点,等待下次滚动触发
- ScrollTrigger for WordPress
- 安装这个基于GSAP的插件,上传飞机图片给它加个CSS类(比如
rolling-plane) - 在插件设置里创建滚动动画,选择这个类的元素,设置路径动画的关键帧,把滚动进度和动画进度绑定
- 开启循环:当滚动超过动画结束位置后,自动重置飞机的位置和动画状态
- 安装这个基于GSAP的插件,上传飞机图片给它加个CSS类(比如
二、手动代码实现(进阶)
如果想自己控制细节,用GSAP+ScrollTrigger来写,步骤如下:
- 用
Code Snippets插件(避免改主题文件出错)添加自定义CSS:
.rolling-plane { position: fixed; width: 80px; z-index: 999; opacity: 0; }
- 同样用Code Snippets添加JS代码:
document.addEventListener('DOMContentLoaded', function() { const plane = document.querySelector('.rolling-plane'); // 自定义路径坐标,对应你示例里的虚线轨迹 const pathPoints = [ {x: 120, y: 60}, {x: 350, y: 180}, {x: 580, y: 100}, {x: 750, y: 220} ]; // 加载GSAP和ScrollTrigger(如果主题没自带,需先引入) gsap.registerPlugin(ScrollTrigger); // 创建滚动动画时间线 const planeTimeline = gsap.timeline({ scrollTrigger: { trigger: 'body', start: 'top top', end: 'bottom bottom', scrub: 0.5, // 滚动与动画的同步延迟,数值越小越灵敏 onLeave: function() { // 滚动到页面底部时,重置动画到起点 planeTimeline.restart(); } } }); // 给飞机添加上路径动画 planeTimeline.fromTo(plane, {opacity: 1, x: pathPoints[0].x, y: pathPoints[0].y}, { duration: 1, x: pathPoints[pathPoints.length-1].x, y: pathPoints[pathPoints.length-1].y, ease: 'none', bezier: {values: pathPoints, type: 'soft'} } ); // 滚动到底部时隐藏飞机,再快速重置位置 ScrollTrigger.create({ trigger: 'body', start: 'bottom bottom', onEnter: function() { gsap.to(plane, {opacity: 0, duration: 0.3}); setTimeout(() => { gsap.set(plane, {x: pathPoints[0].x, y: pathPoints[0].y, opacity: 1}); }, 500); } }); });
- 在着陆页编辑界面给飞机图片加上
rolling-plane的CSS类
三、参考资源
- GSAP官方文档:里面有大量滚动触发动画的实战示例,包括路径跟随效果
- Elementor官方教程:学习如何用可视化编辑器扩展动画功能
- WordPress开发者文档:掌握在主题中安全添加自定义代码的方法
内容的提问来源于stack exchange,提问作者Sidath
相关产品推荐
相关产品推荐

