// ============================================ // 榴莲认种管理后台 - 动画定义 // ============================================ @use 'variables' as *; // 淡入动画 @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } // 淡出动画 @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } // 向上滑入 @keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } // 向下滑入 @keyframes slideInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } // 向左滑入 @keyframes slideInLeft { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } } // 向右滑入 @keyframes slideInRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } // 缩放进入 @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } // 缩放退出 @keyframes scaleOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } } // 弹跳动画 @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } // 脉冲动画 @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } // 旋转动画 @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } // 摇晃动画 @keyframes shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); } 20%, 40%, 60%, 80% { transform: translateX(5px); } } // 骨架屏闪烁 @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } // 动画类 .animate-fadeIn { animation: fadeIn $duration-base $ease-out; } .animate-fadeOut { animation: fadeOut $duration-base $ease-in; } .animate-slideInUp { animation: slideInUp $duration-base $ease-out; } .animate-slideInDown { animation: slideInDown $duration-base $ease-out; } .animate-slideInLeft { animation: slideInLeft $duration-base $ease-out; } .animate-slideInRight { animation: slideInRight $duration-base $ease-out; } .animate-scaleIn { animation: scaleIn $duration-fast $ease-out; } .animate-scaleOut { animation: scaleOut $duration-fast $ease-in; } .animate-bounce { animation: bounce 1s infinite; } .animate-pulse { animation: pulse 2s infinite; } .animate-spin { animation: spin 1s linear infinite; } .animate-shake { animation: shake 0.5s ease-in-out; }