复合动画程式码解析复合动画结合多种效果,创造出丰富的视觉体验:

1. 彩虹旋转球

.rainbow-spinner {

background: linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1);

background-size: 300% 300%;

animation: rainbowSpin 3s ease-in-out infinite;

}

@keyframes rainbowSpin {

0% {

transform: rotate(0deg) scale(1);

background-position: 0% 50%;

}

50% {

transform: rotate(180deg) scale(0.8);

background-position: 100% 50%;

}

100% {

transform: rotate(360deg) scale(1);

background-position: 0% 50%;

}

}2. 脉冲波纹效果

.pulse-wave {

animation: pulseWave 2s ease-out infinite;

}

.pulse-wave::before,

.pulse-wave::after {

content: '';

position: absolute;

border: 2px solid #8b5cf6;

border-radius: 50%;

animation: ripple 2s ease-out infinite;

}

@keyframes ripple {

0% { transform: scale(1); opacity: 1; }

100% { transform: scale(2.5); opacity: 0; }

}3. JavaScript 动画控制

// 暂停/播放动画

element.style.animationPlayState = 'paused'; // 暂停

element.style.animationPlayState = 'running'; // 播放

// 重置动画

element.style.animation = 'none';

element.offsetHeight; // 强制重排

element.style.animation = 'animationName 2s ease infinite';

// 调整动画速度

element.style.animationDuration = '1s'; // 加快速度CSS 动画最佳实践性能优化技巧

优先使用 transform 和 opacity

这些属性不会触发重新布局,性能最佳

避免动画 width、height、top、left 等属性

合理设置动画时长

微互动:100-300ms

页面切换:300-500ms

装饰动画:1-3秒

使用 will-change 优化

.animated-element {

will-change: transform, opacity;

}用户体验考量支援无障碍设计

@media (prefers-reduced-motion: reduce) {

* {

animation-duration: 0.01ms !important;

animation-iteration-count: 1 !important;

}

}提供动画控制

对于循环动画,提供暂停选项

避免过于频繁或刺眼的动画

确保动画有明确的开始和结束状态

掌握这些 CSS 动画技巧,你就能为网站创造出既美观又实用的动画效果!记住,好的动画应该服务于用户体验,而不是单纯的炫技。