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

Sass循环为元素分配相同动画延迟问题排查

问题分析与解决方案

核心问题

你的选择器逻辑错误:
每个.contact-item内部,.contact-link是第3个子元素(前面包含.contact-header-wrapper、.contact-text两个元素),所以你的循环中:

  • 当$i=3时,#contact-grid .contact-item .contact-link:nth-child(3)会匹配所有.contact-link元素
  • 而$i=1/2/4/5的选择器找不到任何对应元素
    最终所有.contact-link都被$i=3的规则覆盖,延迟统一变成3s。

修正后的Sass循环

把选择器的目标从.contact-link的子元素序号,改为.contact-item的序号:

@for $i from 1 through 5 {
    #contact-grid .contact-item:nth-child(#{$i}) .contact-link {
        @include textShakeAnimation($delay: #{$i}s);
    }
}

原理说明

修改后循环会定位到#contact-grid下的第N个.contact-item,再选中它内部的.contact-link,这样每个.contact-link都会拿到对应$i值的延迟,不会出现规则覆盖问题。

验证建议

检查生成的CSS,会看到每个.contact-item:nth-child(N) .contact-link都有独立的animation-delay值,刷新页面即可看到元素按顺序延迟晃动的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 11:27:14