点击按钮显示标题元素:keyframes淡入动画不生效问题排查
问题原因
- 选择器优先级不足:
.fadeIn单类选择器的优先级低于.one .two .h1cls三代选择器,动画结束后opacity: 0规则仍会生效 - 缺少动画结束状态配置:默认
animation-fill-mode取值为none,动画播放完成后会回到元素初始状态,无法保留动画最后一帧的opacity:1效果 - 额外提示:你配置了
animation-delay: 5000ms,点击按钮后需要等待5秒才会开始执行淡入动画,可根据需求调整延迟时长
修复方案
方案1:保留keyframe动画的修改方式
调整.fadeIn选择器权重,新增动画状态保留配置:
/* 调整选择器匹配权重,高于默认的隐藏规则 */ .one .two .h1cls.fadeIn { animation-name: fadeIn; animation-duration: 150ms; animation-timing-function: linear; animation-delay: 5000ms; /* 新增配置:动画结束后保留最后一帧的状态 */ animation-fill-mode: forwards; }
方案2:用transition实现更简洁
如果不需要复杂的关键帧控制,用transition实现逻辑更简单,无需单独定义@keyframes:
.one .two .h1cls { opacity: 0; /* 配置过渡属性:时长 速率曲线 延迟 */ transition: opacity 150ms linear 5000ms; } .one .two .h1cls.fadeIn { opacity: 1; }
内容的提问来源于stack exchange,提问作者user944513
相关产品推荐
相关产品推荐

