transition-delay不生效通常因CSS覆盖、状态未变化或写法错误;须在初始状态定义完整transition,避免仅在hover中设置delay,且确保属性可过渡、值发生改变。
过渡动画的 transition-delay 不生效,通常不是写法错误,而是被其他 CSS 规则覆盖、触发条件没满足,或元素状态变化方式不对导致的。
transition-delay 必须和 transition-property、transition-duration 等一起定义在「初始状态」(比如默认的 :not(:hover) 或普通类),而不是只写在悬停/激活态里。
过渡动画只在「可过渡属性」发生「计算值变化」时才启动。如果新旧值相同,或属性本身不可过渡(如 display),delay 就不会执行。
display: none ↔ block 切换——它不触发过渡,改用 visibility + opacity
transition-delay 对「进入」和「离
开」都生效。若想进有延迟、出无延迟,需分别设置:
transition-delay: 0,基础状态保持原 delay(或用 transition: none 临时禁用)transition: all —— 它会覆盖你精细设置的 transition,优先用明确属性名transition 是否被更高权重要素覆盖(比如内联 style 或 !important)will-change 却未正确配合:它可能影响合成层,间接干扰过渡时机