Files
warOfCoins/pages/strategy/strategy.wxss
2025-12-07 22:53:46 +08:00

625 lines
12 KiB
Plaintext

/**strategy.wxss**/
.container {
padding: 30rpx;
min-height: 100vh;
}
.vintage-bg {
background-color: #f8f6f1;
background-image: url('data:image/png;base64,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');
position: relative;
overflow-x: hidden;
}
/* 添加页面切换动画 */
.page-transition {
animation: fadeIn 0.5s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.event-header {
margin-bottom: 30rpx;
padding: 20rpx;
border-radius: 10rpx;
background-color: #fff;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
animation: slideDown 0.5s ease-out;
transition: transform 0.3s ease;
}
.event-header:active {
transform: scale(0.98);
}
@keyframes slideDown {
from {
transform: translateY(-30rpx);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.event-title {
font-size: 36rpx;
font-weight: bold;
margin-bottom: 15rpx;
color: #333;
}
.event-desc {
font-size: 28rpx;
color: #666;
margin-bottom: 15rpx;
line-height: 1.5;
}
.event-impact {
font-size: 26rpx;
color: #d9534f;
margin-bottom: 15rpx;
}
.level-indicator {
display: flex;
align-items: center;
}
.level-dots {
display: flex;
margin-left: 10rpx;
}
.level-dot {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
background-color: #ddd;
margin-right: 5rpx;
transition: background-color 0.5s ease;
}
.level-dot.active {
background-color: #d9534f;
animation: pulseDot 2s infinite;
}
@keyframes pulseDot {
0% { opacity: 1; }
50% { opacity: 0.6; }
100% { opacity: 1; }
}
.section-title {
font-size: 32rpx;
font-weight: bold;
margin: 20rpx 0;
color: #333;
position: relative;
padding-bottom: 10rpx;
}
.section-title::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 60rpx;
height: 4rpx;
background-color: #5cb85c;
transition: width 0.3s ease;
}
.section-title:hover::after {
width: 120rpx;
}
.strategy-category {
margin-bottom: 40rpx;
animation: fadeInUp 0.6s ease-out;
animation-fill-mode: both;
}
.strategy-category:nth-child(2) {
animation-delay: 0.2s;
}
.strategy-category:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes fadeInUp {
from {
transform: translateY(20rpx);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.category-header {
display: flex;
align-items: center;
margin-bottom: 15rpx;
}
.category-icon {
width: 40rpx;
height: 40rpx;
margin-right: 10rpx;
border-radius: 50%;
transition: transform 0.3s ease;
}
.category-header:hover .category-icon {
transform: scale(1.2);
}
.economic-icon {
background-color: #5bc0de;
}
.admin-icon {
background-color: #f0ad4e;
}
.mob-icon {
background-color: #5cb85c;
}
.category-title {
font-size: 30rpx;
font-weight: bold;
color: #333;
}
.strategy-list {
display: flex;
flex-direction: column;
gap: 20rpx;
}
.strategy-item {
position: relative;
padding: 20rpx;
border-radius: 10rpx;
background-color: #fff;
transition: all 0.3s;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
border-left: 8rpx solid transparent;
transform-origin: center;
}
.strategy-item.disabled {
opacity: 0.6;
background-color: #f5f5f5;
cursor: not-allowed;
color: #999;
}
.strategy-item.used {
opacity: 0.6;
border-left-color: #999;
background-color: #f5f5f5;
}
/* 非禁用状态下的策略项高亮效果 */
.strategy-item:not(.disabled):not(.used) {
background-color: #fff;
border-left-color: #5cb85c;
color: #333;
opacity: 1;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
box-shadow: 0 0 0 0 rgba(92, 184, 92, 0.4);
}
70% {
box-shadow: 0 0 0 6rpx rgba(92, 184, 92, 0);
}
100% {
box-shadow: 0 0 0 0 rgba(92, 184, 92, 0);
}
}
.strategy-item:not(.disabled):not(.used):active {
transform: scale(0.98);
background-color: #f9f9f9;
}
.strategy-title {
font-size: 30rpx;
font-weight: bold;
margin-bottom: 10rpx;
color: inherit;
}
.strategy-desc {
font-size: 26rpx;
line-height: 1.5;
color: inherit;
margin-bottom: 15rpx;
}
.not-applicable, .already-used {
font-size: 24rpx;
padding: 4rpx 10rpx;
border-radius: 4rpx;
display: inline-block;
margin-top: 10rpx;
}
.not-applicable {
background-color: #f8d7da;
color: #721c24;
}
.already-used {
background-color: #d1ecf1;
color: #0c5460;
}
.selected-strategies {
margin-bottom: 30rpx;
padding: 20rpx;
border-radius: 10rpx;
background-color: #fff;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
animation: slideIn 0.5s ease-out;
}
@keyframes slideIn {
from {
transform: translateX(-30rpx);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.strategies-list {
display: flex;
flex-wrap: wrap;
gap: 15rpx;
}
.selected-strategy-item {
background-color: #f0f8ff;
border-radius: 8rpx;
padding: 15rpx;
display: flex;
flex-direction: column;
align-items: center;
min-width: 150rpx;
transition: all 0.3s ease;
animation: popIn 0.5s ease-out;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
}
.selected-strategy-item:hover {
transform: translateY(-5rpx);
box-shadow: 0 5rpx 15rpx rgba(0, 0, 0, 0.1);
}
@keyframes popIn {
0% {
transform: scale(0.8);
opacity: 0;
}
70% {
transform: scale(1.1);
}
100% {
transform: scale(1);
opacity: 1;
}
}
.round-label {
font-size: 22rpx;
color: #666;
margin-bottom: 5rpx;
background-color: #f5f5f5;
padding: 2rpx 8rpx;
border-radius: 10rpx;
}
.strategy-name {
font-size: 26rpx;
color: #333;
text-align: center;
font-weight: bold;
}
.action-buttons {
display: flex;
justify-content: space-between;
margin-top: 40rpx;
padding: 20rpx 0;
animation: fadeInUp 0.5s ease-out;
animation-delay: 0.8s;
animation-fill-mode: both;
}
.back-btn, .finish-btn {
padding: 15rpx 30rpx;
border-radius: 50rpx;
font-size: 28rpx;
text-align: center;
transition: all 0.3s ease;
}
.back-btn {
background-color: #f8f9fa;
color: #6c757d;
border: 1rpx solid #dee2e6;
}
.back-btn:active {
background-color: #e9ecef;
transform: scale(0.98);
}
.finish-btn {
background-color: #5cb85c;
color: white;
position: relative;
overflow: hidden;
}
.finish-btn:active {
background-color: #4cae4c;
transform: scale(0.98);
}
.finish-btn::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 5rpx;
height: 5rpx;
background: rgba(255, 255, 255, 0.5);
opacity: 0;
border-radius: 100%;
transform: scale(1, 1) translate(-50%);
transform-origin: 50% 50%;
}
.finish-btn:active::after {
animation: ripple 1s ease-out;
}
@keyframes ripple {
0% {
transform: scale(0, 0);
opacity: 0.5;
}
100% {
transform: scale(20, 20);
opacity: 0;
}
}
/* 模态框样式 */
.modal-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
animation: fadeIn 0.3s ease;
}
.modal-content {
width: 85%;
background: #fff;
border-radius: 10rpx;
overflow: hidden;
max-height: 90vh;
display: flex;
flex-direction: column;
animation: scaleIn 0.3s ease;
transform-origin: center;
}
@keyframes scaleIn {
0% {
transform: scale(0.9);
opacity: 0;
}
100% {
transform: scale(1);
opacity: 1;
}
}
.modal-header {
padding: 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1rpx solid #eee;
background-color: #f5f5f5;
}
.modal-title {
font-size: 32rpx;
font-weight: bold;
color: #333;
}
.modal-close {
font-size: 40rpx;
color: #999;
cursor: pointer;
transition: all 0.3s ease;
width: 50rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
}
.modal-close:hover {
background-color: #f5f5f5;
color: #666;
}
.modal-body {
padding: 30rpx;
max-height: 60vh;
overflow-y: auto;
}
.case-title {
font-size: 30rpx;
font-weight: bold;
margin-bottom: 20rpx;
color: #333;
border-left: 4rpx solid #5cb85c;
padding-left: 15rpx;
}
.case-image {
width: 100%;
height: 300rpx;
background-color: #f8f9fa;
margin-bottom: 20rpx;
border-radius: 8rpx;
background-image: url('https://placeholder.pics/svg/400x150/DEDEDE/555555/历史案例');
background-size: cover;
background-position: center;
transition: transform 0.5s ease;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
}
.case-image:hover {
transform: scale(1.02);
}
.case-desc {
font-size: 28rpx;
line-height: 1.6;
color: #666;
text-indent: 2em;
}
.modal-footer {
padding: 20rpx;
display: flex;
justify-content: flex-end;
border-top: 1rpx solid #eee;
background-color: #f5f5f5;
}
.btn {
padding: 15rpx 30rpx;
border-radius: 50rpx;
font-size: 28rpx;
background-color: #5cb85c;
color: white;
text-align: center;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.btn:active {
transform: scale(0.98);
background-color: #4cae4c;
}
/* 加载状态 */
.loading-container {
display: flex;
justify-content: center;
align-items: center;
height: 100rpx;
margin: 20rpx 0;
}
.loading-spinner {
width: 50rpx;
height: 50rpx;
border: 4rpx solid rgba(0, 0, 0, 0.1);
border-left-color: #5cb85c;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* 提示性样式 */
.tip-container {
margin: 20rpx 0;
padding: 15rpx;
background-color: #fff3cd;
border-left: 4rpx solid #ffc107;
border-radius: 4rpx;
font-size: 26rpx;
color: #856404;
animation: fadeIn 0.5s ease-in-out;
}
.round-indicator {
display: flex;
justify-content: center;
margin: 20rpx 0;
padding: 15rpx;
background-color: rgba(255, 255, 255, 0.8);
border-radius: 20rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
}
.round-dot {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
background-color: #ddd;
margin: 0 10rpx;
transition: all 0.3s ease;
}
.round-dot.active {
background-color: #5cb85c;
transform: scale(1.2);
box-shadow: 0 0 8rpx rgba(92, 184, 92, 0.5);
}
.round-dot.completed {
background-color: #28a745;
}
/* 策略选择提示文字 */
.selection-help {
font-size: 24rpx;
color: #6c757d;
text-align: center;
margin: 10rpx 0 30rpx;
font-style: italic;
animation: fadeIn 0.8s ease-in-out;
background-color: rgba(255, 255, 255, 0.7);
padding: 10rpx;
border-radius: 20rpx;
}