You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress Avada主题:向上滚动时重新播放CSS动画

实现Avada页面向上滚动时重新播放CSS动画

嘿,这个需求其实挺常见的,我来给你捋捋具体怎么实现——核心思路就是监听页面的向上滚动事件,当元素满足触发条件时重置动画状态。下面是适配Avada场景的完整步骤:

1. 给目标元素添加专属类名

首先,给所有需要重新播放动画的Avada页面元素(比如模块、文本框、图片等)加一个自定义类名,比如replay-on-scroll-up。操作路径是:打开元素编辑面板→找到「Advanced(高级)」选项卡→在「CSS Class」输入框填入这个类名。

2. 编写滚动监听的JavaScript代码

接下来要写一段JS来监听滚动方向,触发动画重置。你可以把这段代码加到Avada的「Theme Options」→「Custom Code」→「Custom JavaScript」里,或者用Code Snippets这类插件添加到页面:

// 记录上一次滚动的位置
let lastScrollTop = 0;

window.addEventListener('scroll', function() {
    // 获取当前滚动位置
    const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
    
    // 判断是否为向上滚动
    if (scrollTop < lastScrollTop) {
        // 筛选出所有需要重启动画的元素
        const animatedElements = document.querySelectorAll('.replay-on-scroll-up');
        
        animatedElements.forEach(el => {
            // 替换成你实际使用的动画类名(Avada自带动画类一般是fusion-animation-xxx格式)
            const targetAnimationClass = el.classList.contains('fusion-animation-fade-in') 
                ? 'fusion-animation-fade-in' 
                : 'your-custom-animation-class';
            
            // 先移除动画类,触发浏览器重绘后再重新添加,实现动画重启
            el.classList.remove(targetAnimationClass);
            void el.offsetWidth; // 强制浏览器重绘
            el.classList.add(targetAnimationClass);
            
            // 如果你的动画是直接写在元素style里的@keyframes,用下面的方式重置:
            // el.style.animation = 'none';
            // void el.offsetWidth;
            // el.style.animation = null;
        });
    }
    
    // 更新上一次滚动位置
    lastScrollTop = scrollTop;
});

小提示:如果用的是Avada自带的动画,可以通过浏览器开发者工具查看元素的类名,比如你选了「Fade In」动画,元素会带有fusion-animation-fade-in类。

3. 调整CSS动画属性(可选)

如果你的动画默认设置了animation-fill-mode: forwards(保持动画结束后的状态),需要调整CSS让动画能被重复触发:

.replay-on-scroll-up {
    animation-fill-mode: none !important; /* 取消保持最终状态,允许动画重新播放 */
    animation-iteration-count: 1 !important; /* 确保每次触发只播放一次 */
}

把这段CSS加到Avada的「Theme Options」→「Custom Code」→「Custom CSS」即可。

4. 测试与排查

保存所有设置后刷新页面,向上滚动看看效果。如果没生效,可以检查这几点:

  • 元素的自定义类名是否正确添加
  • JS里的动画类名是否和实际使用的一致
  • 有没有其他插件的JS代码冲突(可以暂时禁用其他插件排查)

内容的提问来源于stack exchange,提问作者Cemre Suler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:15:07