flower-mp/components/badge/index.wxss
2025-12-02 14:55:29 +08:00

121 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* components/badge/index.wxss */
/* =================================
1. 舞台层 (保持透视)
================================= */
.badge-scene {
position: relative;
width: 285rpx;
height: 285rpx;
margin: 50rpx auto;
/* 透视距离决定旋转时的立体感1000rpx 比较自然 */
perspective: 1000rpx;
}
/* =================================
2. 背景光线层 (不变)
================================= */
.badge-bg-rays {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 180%;
height: 180%;
z-index: 0;
border-radius: 50%;
background: repeating-conic-gradient(
from 0deg,
transparent 0deg 20deg,
rgba(255, 223, 128, 0.4) 20deg 40deg
);
filter: blur(30px);
animation: rotate-rays 20s linear infinite;
pointer-events: none;
}
/* =================================
3. 3D包裹层 (修改了动画)
================================= */
.badge-3d-wrapper {
width: 100%;
height: 100%;
position: relative;
z-index: 2;
transform-style: preserve-3d;
/* 【修改点】应用纯左右摇摆动画 */
/* 4s 一个周期ease-in-out 让两头慢中间快,更有质感 */
animation: swayLeftRight 4s ease-in-out infinite;
}
/* =================================
4. 内容层 (不变)
================================= */
.badge-content-container {
width: 100%;
height: 100%;
border-radius: 50%;
box-shadow: 0 10px 25px rgba(0,0,0,0.3);
overflow: hidden;
position: relative;
background: #fff;
}
.badge-img-inner {
width: 100%;
height: 100%;
display: block;
}
/* 流光层 (不变) */
.badge-content-container::after {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(
to bottom right,
rgba(255, 255, 255, 0) 30%,
rgba(255, 255, 255, 0.6) 50%,
rgba(255, 255, 255, 0) 70%
);
transform: rotate(30deg);
animation: shimmer 3s infinite ease-in-out;
pointer-events: none;
z-index: 3;
}
/* =================================
动画定义 (Keyframes)
================================= */
/* 【新动画】纯左右 3D 摇摆 */
@keyframes swayLeftRight {
0% {
/* 向左侧转 20度 */
transform: rotateY(-20deg);
}
50% {
/* 向右侧转 20度 */
transform: rotateY(20deg);
}
100% {
/* 回到左侧 */
transform: rotateY(-20deg);
}
}
/* 光线背景旋转 (不变) */
@keyframes rotate-rays {
from { transform: translate(-50%, -50%) rotate(0deg); }
to { transform: translate(-50%, -50%) rotate(360deg); }
}
/* 流光扫过 (不变) */
@keyframes shimmer {
0% { transform: translateX(-100%) translateY(-100%) rotate(30deg); }
100% { transform: translateX(100%) translateY(100%) rotate(30deg); }
}