1391 lines
29 KiB
Plaintext
Executable File
1391 lines
29 KiB
Plaintext
Executable File
/* upload.wxss - 主功能页面样式(扁平化设计) */
|
|
|
|
.upload-container.morning,
|
|
.upload-container.afternoon {
|
|
background: linear-gradient(180deg, #FDFDFC 0%, #EAF7FF 48%, #ECEBFF 100%);
|
|
}
|
|
.morning .history-wrap,
|
|
.afternoon .history-wrap {
|
|
/* color: rgb(0, 24, 88); */
|
|
}
|
|
|
|
|
|
.upload-container {
|
|
min-height: 100vh;
|
|
background: linear-gradient(180deg, #0E1330 0%, #162447 40%, #6B85C8 75%, #EAF1FF 100%);
|
|
padding: 0;
|
|
position: relative;
|
|
padding-top: calc(var(--height) + 100rpx);
|
|
}
|
|
|
|
/* 主要内容区域 */
|
|
.main-content {
|
|
/* min-height: calc(100vh - 64rpx); */
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* 登录检查界面 */
|
|
.login-check-view {
|
|
min-height: calc(100vh - 120rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 40rpx;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.login-prompt {
|
|
position: fixed;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
text-align: center;
|
|
background: #ffffff;
|
|
padding: 60rpx 40rpx;
|
|
border-radius: 16rpx;
|
|
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.1);
|
|
width: 100%;
|
|
max-width: 500rpx;
|
|
}
|
|
|
|
.prompt-title {
|
|
font-size: 40rpx;
|
|
font-weight: 600;
|
|
color: #333333;
|
|
margin-bottom: 20rpx;
|
|
display: block;
|
|
}
|
|
|
|
.prompt-desc {
|
|
font-size: 28rpx;
|
|
color: #666666;
|
|
margin-bottom: 40rpx;
|
|
display: block;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.goto-login-btn {
|
|
background-color: #007AFF;
|
|
color: #ffffff;
|
|
border: none;
|
|
padding: 24rpx 48rpx;
|
|
border-radius: 50rpx;
|
|
font-size: 32rpx;
|
|
width: 100%;
|
|
height: 88rpx;
|
|
line-height: 88rpx;
|
|
}
|
|
|
|
/* 历史记录区域 */
|
|
.history-wrap {
|
|
position: relative;
|
|
/* padding: 40rpx 40rpx; */
|
|
/* color: #b8c1ec; */
|
|
}
|
|
.history-card-title {
|
|
margin-top: 40rpx;
|
|
font-weight: bold;
|
|
}
|
|
.history-card-list {
|
|
width: 100%;
|
|
}
|
|
|
|
.image-grid {
|
|
width: 100%;
|
|
max-height: 900rpx;
|
|
padding: 24rpx;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
}
|
|
.grid-item { border-radius: 24rpx; overflow: hidden; margin-bottom: 24rpx; }
|
|
.grid-image { width: 100%; height: 220rpx; object-fit: cover; }
|
|
.cols-1 .grid-item { width: 100%; }
|
|
.cols-2 .grid-item { width: calc(50% - 12rpx); }
|
|
.cols-3 .grid-item { width: calc(33.333% - 16rpx); }
|
|
.cols-1 .grid-image { height: 480rpx; }
|
|
.cols-3 .grid-image { height: 200rpx; }
|
|
|
|
/* 新:单列全幅图片列表 */
|
|
.image-list { padding: 24rpx; box-sizing: border-box; }
|
|
.list-item { margin-bottom: 24rpx; border-radius: 24rpx; overflow: hidden; background: #fff; position: relative; }
|
|
.full-image { width: 100%; height: auto; display: block; --td-skeleton-text-height: 550rpx;}
|
|
|
|
/* 新:两列瀑布布局 */
|
|
.waterfall { display: flex; gap: 12rpx; padding: 12rpx; box-sizing: border-box; }
|
|
|
|
/* 图片右下角更多按钮 */
|
|
.image-more-wrap {
|
|
position: absolute;
|
|
right: 16rpx;
|
|
bottom: 16rpx;
|
|
z-index: 2;
|
|
}
|
|
.mini-button {
|
|
padding: 6rpx;
|
|
border-radius: 50%;
|
|
background: rgba(255,255,255,0.95);
|
|
box-shadow: 0 4rpx 10rpx rgba(0,0,0,0.1);
|
|
}
|
|
.ul-mini {
|
|
position: relative;
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
background: transparent;
|
|
}
|
|
.ul-mini .dot1,
|
|
.ul-mini .dot2,
|
|
.ul-mini .dot3 {
|
|
display: inline-block;
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 10rpx;
|
|
height: 10rpx;
|
|
background: #666;
|
|
border-radius: 50%;
|
|
border: none;
|
|
transition: 0.6s;
|
|
}
|
|
.ul-mini .dot1 { left: 10%; z-index: 2; }
|
|
.ul-mini .dot2 { left: 50%; transition: .6s; }
|
|
.ul-mini .dot3 { left: 90%; z-index: 2; }
|
|
.ul-mini.active .dot1,
|
|
.ul-mini.active .dot3 {
|
|
top: 50%;
|
|
left: 50%;
|
|
border-radius: 0;
|
|
width: 6rpx;
|
|
height: 38rpx;
|
|
border-radius: 6rpx;
|
|
transition-delay: 0.2s;
|
|
}
|
|
.ul-mini.active .dot1 {
|
|
transform: translate(-50%, -50%) rotate(405deg);
|
|
}
|
|
.ul-mini.active .dot3 {
|
|
transform: translate(-50%, -50%) rotate(-405deg);
|
|
}
|
|
.ul-mini.active .dot2 {
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 56rpx;
|
|
height: 56rpx;
|
|
background: #f5f5f5;
|
|
border: 2rpx solid #e0e0e0;
|
|
}
|
|
.image-more-menu {
|
|
position: absolute;
|
|
right: 0rpx;
|
|
bottom: 70rpx;
|
|
padding: 8rpx 12rpx;
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
gap: 12rpx;
|
|
opacity: 1;
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
.image-more-menu.opening {
|
|
animation: menuFadeIn 240ms ease forwards;
|
|
}
|
|
.image-more-menu.closing {
|
|
animation: menuFadeOut 240ms ease forwards;
|
|
}
|
|
.more-item-mini {
|
|
font-size: 26rpx;
|
|
white-space: nowrap;
|
|
line-height: 32rpx;
|
|
padding: 10rpx 16rpx;
|
|
border-radius: 8rpx;
|
|
background: #f5f5f5;
|
|
}
|
|
|
|
@keyframes menuFadeIn {
|
|
0% { opacity: 0; transform: translateY(8rpx) scale(0.98); }
|
|
100% { opacity: 1; transform: translateY(0) scale(1); }
|
|
}
|
|
@keyframes menuFadeOut {
|
|
0% { opacity: 1; transform: translateY(0) scale(1); }
|
|
100% { opacity: 0; transform: translateY(8rpx) scale(0.98); }
|
|
}
|
|
.wf-col { width: calc(50% - 6rpx); }
|
|
.wf-item { margin-bottom: 12rpx; border-radius: 24rpx; overflow: hidden; background: #fff; position: relative; }
|
|
.wf-image { width: 100%; height: auto; display: block; --td-skeleton-text-height: 330rpx; }
|
|
|
|
/* 瀑布流淡入动画 */
|
|
@keyframes fadeInUp {
|
|
0% { opacity: 0; transform: translateY(12rpx); }
|
|
100% { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
.fade-in {
|
|
opacity: 0;
|
|
animation-name: fadeInUp;
|
|
animation-duration: 0.3s;
|
|
animation-timing-function: ease;
|
|
animation-fill-mode: forwards;
|
|
}
|
|
.images-list {
|
|
margin-top: 20rpx;
|
|
width: 100%;
|
|
height: 100rpx;
|
|
white-space: nowrap;
|
|
display: flex;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.images-list::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
.image-item-wrap {
|
|
margin-right: 16rpx;
|
|
}
|
|
.image-item {
|
|
width: 100rpx;
|
|
height: 100rpx;
|
|
border-radius: 30rpx;
|
|
flex-shrink: 0;
|
|
box-shadow: 0 8rpx 16rpx 0 rgba(0, 0, 0, 0.04);
|
|
}
|
|
|
|
/* 今日摘要区域 */
|
|
.today-wrap {
|
|
position: relative;
|
|
padding: 20rpx 40rpx 0 40rpx;
|
|
color: #b8c1ec;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.today-card {
|
|
padding: 30rpx;
|
|
background-color: #fffffe;
|
|
border-radius: 30rpx;
|
|
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
|
|
color: rgb(18, 22, 41);
|
|
}
|
|
|
|
.today-card .images-list {
|
|
margin-top: 20rpx;
|
|
width: 100%;
|
|
height: 100rpx;
|
|
white-space: nowrap;
|
|
display: flex;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.today-card .image-item-wrap {
|
|
margin-right: 16rpx;
|
|
}
|
|
|
|
.today-card .image-item {
|
|
width: 100rpx;
|
|
height: 100rpx;
|
|
border-radius: 30rpx;
|
|
flex-shrink: 0;
|
|
box-shadow: 0 8rpx 16rpx 0 rgba(0, 0, 0, 0.04);
|
|
}
|
|
|
|
.morning .today-card,
|
|
.afternoon .today-card {
|
|
background-color: #faeee7;
|
|
}
|
|
|
|
/* 欢迎区域 */
|
|
.moon-wrap {
|
|
position: fixed;
|
|
opacity: 0;
|
|
color: #ffef22c7;
|
|
width: 210rpx;
|
|
height: 210rpx;
|
|
animation: slideInFromTopRight 3s forwards ease-in-out, fadeIn 3s forwards linear;
|
|
transform: translate(50%, -50%);
|
|
|
|
}
|
|
.moon-icon {
|
|
top: 100rpx;
|
|
opacity: 0.9;
|
|
}
|
|
.star-icon {
|
|
position: fixed;
|
|
top: 210px;
|
|
right: 40px;
|
|
font-size: 50rpx;
|
|
color: #FFD700;
|
|
filter: drop-shadow(0 0 10px rgba(255, 215, 0, 0.7));
|
|
animation: scaleStar1 3s infinite ease-in-out;
|
|
}
|
|
.star-icon-2 {
|
|
position: fixed;
|
|
top: 120px;
|
|
left: 40px;
|
|
font-size: 40rpx;
|
|
color: #FFD700;
|
|
filter: drop-shadow(0 0 10px rgba(255, 215, 0, 0.7));
|
|
animation: scaleStar2 3s infinite ease-in-out;
|
|
}
|
|
@keyframes scaleStar1 {
|
|
0%,
|
|
100% {
|
|
transform: scale(0.8);
|
|
}
|
|
50% {
|
|
transform: scale(1.2);
|
|
}
|
|
}
|
|
@keyframes scaleStar2 {
|
|
0%,
|
|
100% {
|
|
transform: scale(1.2);
|
|
}
|
|
50% {
|
|
transform: scale(0.8);
|
|
}
|
|
}
|
|
.sunny-wrap {
|
|
/* position: absolute;
|
|
top: -100px;
|
|
right: -100px;
|
|
color: #ffef22c7;
|
|
animation: appear 3s ease-out forwards; */
|
|
position: fixed;
|
|
width: 210rpx;
|
|
height: 210rpx;
|
|
opacity: 0;
|
|
animation: slideInFromTopRight 3s forwards ease-in-out, fadeIn 3s forwards linear;
|
|
transform: translate(50%, -50%);
|
|
}
|
|
.sunny-icon {
|
|
opacity: 1;
|
|
width: 210rpx;
|
|
height: 210rpx;
|
|
animation: rotate 50s linear infinite reverse 3s; /* 3秒后开始旋转 */
|
|
transform-origin: center center;
|
|
}
|
|
.face {
|
|
position: fixed;
|
|
left: 50%;
|
|
transform: translate(-70%, -74%);
|
|
font-size: 50rpx;
|
|
font-weight: 500;
|
|
color: black;
|
|
transition: all 0.8s ease;
|
|
z-index: 10;
|
|
width: 100rpx;
|
|
height: 100rpx;
|
|
|
|
}
|
|
|
|
.face.normal {
|
|
top: 56%;
|
|
transform: translate(-70%, -74%);
|
|
}
|
|
|
|
.face.up {
|
|
top: 64%;
|
|
transform: translate(-70%, -74%);
|
|
}
|
|
|
|
.face.down {
|
|
top: 72%;
|
|
transform: translate(-70%, -74%);
|
|
}
|
|
|
|
@keyframes slideInFromTopRight {
|
|
from {
|
|
transform: translate(300%, -50%);
|
|
}
|
|
to {
|
|
transform: translate(255%, 4%);
|
|
}
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes appear {
|
|
0% {
|
|
top: -100px;
|
|
right: -100px;
|
|
opacity: 0;
|
|
transform: scale(0.2);
|
|
}
|
|
70% {
|
|
opacity: 0.6;
|
|
transform: scale(0.8);
|
|
}
|
|
100% {
|
|
top: 20px;
|
|
right: 60px;
|
|
opacity: 0.8;
|
|
transform: scale(1.1);
|
|
}
|
|
}
|
|
|
|
@keyframes rotate {
|
|
0% {
|
|
transform: translate(-50%, -50%) rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: translate(-50%, -50%) rotate(-360deg);
|
|
}
|
|
}
|
|
|
|
.cloud-icon {
|
|
position: fixed;
|
|
top: 400rpx;
|
|
left: -100rpx;
|
|
color: #eff0f3;
|
|
opacity: 0.8;
|
|
animation: moveLeftRight 4s infinite alternate linear;
|
|
z-index: -1;
|
|
}
|
|
|
|
/* 新:底部日期条样式 */
|
|
.date-section {
|
|
padding: 20rpx;
|
|
background: transparent;
|
|
color: #001858;
|
|
}
|
|
.night .date-section {
|
|
color: #fffffe;
|
|
}
|
|
.date-strip-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
.month-title { font-size: 36rpx; }
|
|
.date-strip { white-space: nowrap; height: 100rpx;}
|
|
.date-strip-inner { display: flex; gap: 24rpx; transition: transform 0.3s ease; will-change: transform; }
|
|
.strip-center { justify-content: center; }
|
|
.strip-default { justify-content: flex-start; }
|
|
.date-strip::-webkit-scrollbar { display: none; }
|
|
.date-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex: 0 0 100rpx;
|
|
width: 100rpx;
|
|
height: 100rpx;
|
|
border-radius: 24rpx;
|
|
background: #ffffff;
|
|
color: #001858;
|
|
}
|
|
.date-item.active { background: #000000; color: #fffffe; }
|
|
.date-item.label { background: rgba(255,255,255,0.65); color: #001858; box-shadow: none; }
|
|
.date-item .weekday { font-size: 24rpx; opacity: 0.8; }
|
|
.date-item .day { font-size: 36rpx;}
|
|
.night .date-item { background: rgba(160,160,160,0.75); color: #000000; }
|
|
.night .date-item.active { background: #fffffe; color: #000000; }
|
|
|
|
@keyframes moveLeftRight {
|
|
0% {
|
|
transform: translateX(-20rpx);
|
|
}
|
|
100% {
|
|
transform: translateX(20rpx);
|
|
}
|
|
}
|
|
|
|
.welcome-section {
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.morning .welcome-card,
|
|
.afternoon .welcome-card {
|
|
border-color: #f582ae;
|
|
}
|
|
|
|
.welcome-card {
|
|
background: #fffffe;
|
|
padding: 32rpx;
|
|
border-radius: 50%;
|
|
text-align: center;
|
|
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.05);
|
|
border: 4rpx dashed rgb(238, 187, 195);
|
|
}
|
|
|
|
.user-info {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.avatar {
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
border-radius: 50%;
|
|
margin-right: 20rpx;
|
|
border: 2rpx solid rgba(102, 126, 234, 0.2);
|
|
}
|
|
|
|
.nickname {
|
|
font-size: 32rpx;
|
|
font-weight: 500;
|
|
color: #333333;
|
|
}
|
|
|
|
.welcome-text {
|
|
font-size: 28rpx;
|
|
color: #666666;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.morning .feature-section,
|
|
.afternoon .feature-section {
|
|
color:rgb(0, 24, 88);
|
|
}
|
|
|
|
|
|
|
|
/* 功能描述区域 */
|
|
.feature-section {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
font-size: 28rpx;
|
|
color: rgb(184, 193, 236);
|
|
font-weight: bold;
|
|
z-index: 1;
|
|
}
|
|
.hello {
|
|
margin-top: 80rpx;
|
|
font-size: 50rpx;
|
|
/* color: black; */
|
|
}
|
|
.begin-text {
|
|
margin-top: 10rpx;
|
|
font-size: 36rpx;
|
|
|
|
}
|
|
|
|
/* 功能按钮区域 */
|
|
.action-section {
|
|
width: 300rpx;
|
|
height: 300rpx;
|
|
margin-top: 40rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.action-section .top {
|
|
|
|
}
|
|
|
|
.action-buttons {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 32rpx;
|
|
width: 100%;
|
|
max-width: 400rpx;
|
|
color: rgb(238, 187, 195);
|
|
}
|
|
|
|
.action-btn {
|
|
background: rgba(255, 255, 255, 0.95);
|
|
backdrop-filter: blur(10rpx);
|
|
border-radius: 24rpx;
|
|
padding: 40rpx 32rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
text-align: center;
|
|
transition: all 0.3s ease;
|
|
box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.action-btn:active {
|
|
transform: translateY(2rpx);
|
|
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
.action-btn:disabled {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.btn-icon {
|
|
font-size: 80rpx;
|
|
margin-bottom: 20rpx;
|
|
display: block;
|
|
}
|
|
|
|
.btn-text {
|
|
font-size: 32rpx;
|
|
font-weight: 600;
|
|
color: #333;
|
|
margin-bottom: 8rpx;
|
|
display: block;
|
|
}
|
|
|
|
.btn-desc {
|
|
font-size: 24rpx;
|
|
color: #666;
|
|
opacity: 0.8;
|
|
display: block;
|
|
}
|
|
|
|
/* 图片预览区域 */
|
|
.preview-section {
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.preview-card {
|
|
background: #ffffff;
|
|
border-radius: 16rpx;
|
|
padding: 32rpx;
|
|
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.05);
|
|
}
|
|
|
|
.preview-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.preview-title {
|
|
font-size: 32rpx;
|
|
font-weight: 500;
|
|
color: #333333;
|
|
}
|
|
|
|
.reselect-btn {
|
|
background: none;
|
|
border: 1rpx solid #007AFF;
|
|
color: #007AFF;
|
|
padding: 12rpx 24rpx;
|
|
border-radius: 30rpx;
|
|
font-size: 24rpx;
|
|
}
|
|
|
|
.preview-image {
|
|
width: 100%;
|
|
max-height: 400rpx;
|
|
border-radius: 16rpx;
|
|
margin-bottom: 20rpx;
|
|
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.processing-status {
|
|
text-align: center;
|
|
}
|
|
|
|
.processing-text {
|
|
font-size: 24rpx;
|
|
color: #666666;
|
|
margin-top: 16rpx;
|
|
display: block;
|
|
}
|
|
|
|
/* 加载状态显示 */
|
|
.processing-section {
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.processing-card {
|
|
background: rgba(255, 255, 255, 0.95);
|
|
backdrop-filter: blur(10rpx);
|
|
border-radius: 24rpx;
|
|
padding: 48rpx 32rpx;
|
|
text-align: center;
|
|
box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.loading-spinner {
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
border: 6rpx solid #f3f3f3;
|
|
border-top: 6rpx solid #007AFF;
|
|
border-radius: 50%;
|
|
margin: 0 auto 24rpx;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
|
|
.processing-card .processing-text {
|
|
font-size: 28rpx;
|
|
color: #666666;
|
|
margin-top: 0;
|
|
}
|
|
|
|
.loading-bar {
|
|
width: 200rpx;
|
|
height: 4rpx;
|
|
background-color: #e5e5e5;
|
|
border-radius: 2rpx;
|
|
margin: 0 auto 16rpx;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.loading-bar::after {
|
|
content: '';
|
|
display: block;
|
|
width: 50%;
|
|
height: 100%;
|
|
background-color: #007AFF;
|
|
border-radius: 2rpx;
|
|
animation: loading 1.5s infinite ease-in-out;
|
|
}
|
|
|
|
@keyframes loading {
|
|
0% { transform: translateX(-100%); }
|
|
100% { transform: translateX(200%); }
|
|
}
|
|
|
|
/* 使用提示 */
|
|
.tips-section {
|
|
margin-top: auto;
|
|
}
|
|
|
|
.tips-card {
|
|
background: #ffffff;
|
|
padding: 24rpx 32rpx;
|
|
border-radius: 16rpx;
|
|
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.05);
|
|
}
|
|
|
|
.tips-title {
|
|
font-size: 28rpx;
|
|
font-weight: 500;
|
|
color: #333333;
|
|
margin-bottom: 16rpx;
|
|
display: block;
|
|
}
|
|
|
|
.tips-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8rpx;
|
|
}
|
|
|
|
.tip-item {
|
|
font-size: 24rpx;
|
|
color: #666666;
|
|
line-height: 1.5;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* 自定义导航栏 */
|
|
.custom-navbar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 9999;
|
|
background: rgba(255, 255, 255, 0.95);
|
|
backdrop-filter: blur(20rpx);
|
|
border-bottom: 1rpx solid rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.navbar-content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
height: 120rpx;
|
|
padding: 0 32rpx;
|
|
padding-top: 44rpx; /* 为状态栏留出空间 */
|
|
}
|
|
|
|
.navbar-left,
|
|
.navbar-right {
|
|
width: 100rpx;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.navbar-title {
|
|
flex: 1;
|
|
text-align: center;
|
|
}
|
|
|
|
.title-text {
|
|
font-size: 36rpx;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.profile-btn {
|
|
background: linear-gradient(45deg, #667eea, #764ba2);
|
|
color: white;
|
|
border-radius: 50%;
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border: none;
|
|
box-shadow: 0 4rpx 12rpx rgba(102, 126, 234, 0.3);
|
|
}
|
|
|
|
.profile-icon {
|
|
font-size: 24rpx;
|
|
}
|
|
|
|
/* 装饰气泡 */
|
|
.decoration-bubbles {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
|
|
.bubble {
|
|
position: absolute;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
border-radius: 50%;
|
|
animation: bubbleFloat 8s ease-in-out infinite;
|
|
}
|
|
|
|
.bubble-1 {
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
top: 25%;
|
|
left: 5%;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.bubble-2 {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
top: 50%;
|
|
right: 10%;
|
|
animation-delay: 2s;
|
|
}
|
|
|
|
.bubble-3 {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
bottom: 30%;
|
|
left: 15%;
|
|
animation-delay: 4s;
|
|
}
|
|
|
|
@keyframes bubbleFloat {
|
|
0%, 100% { transform: translateY(0px) rotate(0deg); }
|
|
50% { transform: translateY(-20px) rotate(180deg); }
|
|
}
|
|
|
|
.camera-wrawpper {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
transition: all 0.8s ease;
|
|
}
|
|
|
|
.camera {
|
|
position:relative;
|
|
width:300rpx; height:300rpx;
|
|
margin-top:40rpx;
|
|
background:#eaeaea;
|
|
border-radius:50rpx;
|
|
overflow:hidden;
|
|
z-index:2;
|
|
}
|
|
|
|
.btn {
|
|
position: absolute;
|
|
top: 20rpx; right: 30rpx;
|
|
width: 45rpx; height: 35rpx;
|
|
background-color: #2e3e4f;
|
|
border-radius: 15rpx;
|
|
box-shadow: 0px 3rpx 0px rgba(0,0,0,.4);
|
|
}
|
|
|
|
.strip {
|
|
height: 110rpx;
|
|
background-color: #54b59a;
|
|
border-top: 10rpx solid #479a83;
|
|
border-bottom: 10rpx solid #479a83;
|
|
margin: 80rpx 0px;
|
|
box-shadow: 0px 2rpx 0px rgba(0,0,0,.4);
|
|
}
|
|
|
|
.lens {
|
|
position:absolute;
|
|
top:50%; left:50%;
|
|
width:144rpx; height:144rpx;
|
|
margin:-90rpx;
|
|
border:18rpx solid #b44b37;
|
|
border-radius:50%;
|
|
background-color:#111;
|
|
box-shadow: 0px 5rpx 0px rgba(0,0,0,.4);
|
|
}
|
|
|
|
.lens::before {
|
|
content: '';
|
|
position: absolute;
|
|
width: 50rpx; height: 50rpx;
|
|
margin: 27rpx;
|
|
border: 20rpx solid rgb(60, 60, 60);
|
|
border-radius: 50%;
|
|
background: rgb(34, 34, 34);
|
|
}
|
|
|
|
.lens::after {
|
|
content: '';
|
|
position: absolute;
|
|
width: 8rpx; height: 8rpx;
|
|
margin: 57rpx;
|
|
border: 11rpx solid rgb(22, 22, 22);
|
|
border-radius: 50%;
|
|
background: rgb(131, 131, 131);
|
|
}
|
|
|
|
.lens-shutter {
|
|
position:relative;
|
|
width:144rpx; height:144rpx;
|
|
display: inline-block;
|
|
border-radius: 50%;
|
|
overflow: hidden;
|
|
}
|
|
.lens-shutter::after {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 50%;
|
|
top: -120%;
|
|
height: 340%;
|
|
width: 170%;
|
|
transition: .5s all linear;
|
|
/* animation: shutter 10.0s infinite ease-in-out; */
|
|
background:
|
|
linear-gradient(-150deg, transparent 52%, #000 calc(52% + 2rpx) calc(52% + 4rpx), grey calc(52% + 6rpx)) bottom/100% 40% no-repeat,
|
|
linear-gradient(150deg, transparent 52%, #000 calc(52% + 2rpx) calc(52% + 4rpx), grey calc(52% + 6rpx)),
|
|
linear-gradient(90deg, transparent 30%, #000 calc(30% + 2rpx) calc(30% + 4rpx), grey calc(30% + 6rpx)),
|
|
linear-gradient(30deg, transparent 52%, #000 calc(52% + 2rpx) calc(52% + 4rpx), grey calc(52% + 6rpx));
|
|
transform: rotate(180deg);
|
|
transform-origin: left;
|
|
}
|
|
.lens-shutter::before {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 50%;
|
|
top: -120%;
|
|
height: 340%;
|
|
width: 170%;
|
|
transition: .5s all linear;
|
|
/* animation: shutter 10.0s infinite ease-in-out; */
|
|
background:
|
|
linear-gradient(-150deg, transparent 52%, #000 calc(52% + 2rpx) calc(52% + 4rpx), grey calc(52% + 6rpx)) bottom/100% 40% no-repeat,
|
|
linear-gradient(150deg, transparent 52%, #000 calc(52% + 2rpx) calc(52% + 4rpx), grey calc(52% + 6rpx)),
|
|
linear-gradient(90deg, transparent 30%, #000 calc(30% + 2rpx) calc(30% + 4rpx), grey calc(30% + 6rpx)),
|
|
linear-gradient(30deg, transparent 52%, #000 calc(52% + 2rpx) calc(52% + 4rpx), grey calc(52% + 6rpx));
|
|
}
|
|
|
|
@keyframes shutter {
|
|
0% {
|
|
top: -120%;
|
|
height: 340%;
|
|
width: 170%;
|
|
opacity: 0;
|
|
} 10% {
|
|
top: 0;
|
|
height: 100%;
|
|
width: 50%;
|
|
opacity: 1;
|
|
} 20%, 100% {
|
|
top: -120%;
|
|
height: 340%;
|
|
width: 170%;
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.led {
|
|
position: absolute;
|
|
left: 35rpx; top: 30rpx;
|
|
width: 15rpx; height: 15rpx;
|
|
border-radius: 50%;
|
|
background-color: rgb(255, 136, 115);
|
|
box-shadow: inset 0px 1rpx 0px rgba(0,0,0,.1);
|
|
animation: led .8s infinite;
|
|
}
|
|
|
|
@keyframes led {
|
|
from {
|
|
opacity:.2;
|
|
}
|
|
to {
|
|
opacity:1;
|
|
}
|
|
}
|
|
|
|
.shutter {
|
|
width: 180rpx;
|
|
height: 180rpx;
|
|
border-radius: 50%;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
margin:-90rpx;
|
|
background: #181816;
|
|
box-shadow: 0 0 0 5rpx #181816, 0 0 0 3rpx #373737;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.bottom {
|
|
position: absolute;
|
|
bottom: 0;
|
|
width: 100%;
|
|
height: 24rpx;
|
|
background-color: #c6c6c6;
|
|
border-radius: 14rpx 14rpx 0 0;
|
|
}
|
|
|
|
.photo-wrapper {
|
|
position: relative;
|
|
bottom: 12rpx;
|
|
left: 0rpx;
|
|
width: 264rpx;
|
|
/* height: 284rpx; */
|
|
height: 568rpx;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.photo {
|
|
position: relative;
|
|
bottom: 0rpx;
|
|
left: 0rpx;
|
|
width: 240rpx;
|
|
height: 240rpx;
|
|
background-color: rgb(255, 255, 255);
|
|
border-style: solid;
|
|
border-color: rgb(230, 230, 230);
|
|
border-width: 12rpx 12rpx 32rpx 12rpx;
|
|
box-shadow: 0 4rpx 6rpx rgba(0, 0, 0, 0.2);
|
|
overflow: hidden;
|
|
z-index: 2;
|
|
/* transform: translateY(-105%); */
|
|
/* animation: reveal 10s infinite ease-out; */
|
|
}
|
|
.photo-auto { height: auto; }
|
|
|
|
@keyframes reveal {
|
|
0%, 20% {
|
|
transform: translateY(-105%);
|
|
}
|
|
30% {
|
|
transform: translateY(0%);
|
|
opacity: 1;
|
|
}
|
|
85% {
|
|
transform: translateY(0%);
|
|
opacity: 1;
|
|
}
|
|
95% {
|
|
transform: translateY(100%);
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
transform: translateY(-105%);
|
|
}
|
|
}
|
|
|
|
.photo-inner {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #FEFDE2;
|
|
/* filter: blur(10rpx) brightness(0%) saturate(0%); */
|
|
/* animation: showphoto 10s infinite ease-out; */
|
|
}
|
|
@keyframes showphoto {
|
|
0%, 25% {
|
|
filter: blur(10rpx) brightness(0%) saturate(0%);
|
|
}
|
|
35%, 90% {
|
|
filter: blur(0rpx) brightness(100%) saturate(100%);
|
|
}
|
|
100% {
|
|
filter: blur(10rpx) brightness(0%) saturate(0%);
|
|
}
|
|
}
|
|
@keyframes showphoto1 {
|
|
0%, 25% {
|
|
filter: blur(10rpx) brightness(0%) saturate(0%);
|
|
}
|
|
35%, 100% {
|
|
filter: blur(0rpx) brightness(100%) saturate(100%);
|
|
}
|
|
}
|
|
@keyframes shutter1 {
|
|
0% {
|
|
top: -120%;
|
|
height: 340%;
|
|
width: 170%;
|
|
opacity: 0;
|
|
} 10% {
|
|
top: 0;
|
|
height: 100%;
|
|
width: 50%;
|
|
opacity: 1;
|
|
} 20%, 100% {
|
|
top: -120%;
|
|
height: 340%;
|
|
width: 170%;
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes reveal1 {
|
|
0%, 20% {
|
|
transform: translateY(-105%);
|
|
}
|
|
30% {
|
|
transform: translateY(0%);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: translateY(0%);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.default .camera .lens-shutter::after,
|
|
.default .camera .lens-shutter::before {
|
|
animation: shutter 10.0s infinite ease-in-out;
|
|
}
|
|
.default .photo-wrapper .photo {
|
|
animation: reveal 10s infinite ease-out;
|
|
}
|
|
.default .photo-wrapper .photo-inner {
|
|
animation: showphoto 10s infinite ease-out;
|
|
}
|
|
|
|
.action .camera .lens-shutter::after,
|
|
.action .camera .lens-shutter::before {
|
|
animation: shutter1 10s ease-in-out forwards;
|
|
}
|
|
.action .photo-wrapper .photo {
|
|
animation: reveal1 10s ease-out forwards;
|
|
}
|
|
.action .photo-wrapper .photo-inner {
|
|
animation: showphoto1 10s ease-out forwards;
|
|
}
|
|
|
|
.photo-image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
.photo-image-cover {
|
|
display: block;
|
|
height: auto;
|
|
}
|
|
.photo-inner-auto {
|
|
height: auto;
|
|
}
|
|
|
|
.photo-expand-layer {
|
|
position: fixed;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
pointer-events: none;
|
|
z-index: 99;
|
|
transition: transform 900ms ease-in-out;
|
|
will-change: transform;
|
|
transform-origin: center center;
|
|
backface-visibility: hidden;
|
|
}
|
|
.photo-expand-inner {
|
|
display: inline-block;
|
|
/* 初始与小卡片重叠,无额外外边距 */
|
|
background-color: #ffffff;
|
|
border: 24rpx solid #ffffff;
|
|
border-bottom: 48rpx solid #fff;
|
|
box-shadow: 0 12rpx 32rpx rgba(0,0,0,0.35);
|
|
border-radius: 12rpx;
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
transition: width 900ms ease-in-out;
|
|
will-change: width, transform;
|
|
transform-origin: center center;
|
|
backface-visibility: hidden;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.photo-expand-image {
|
|
display: block;
|
|
width: 100%;
|
|
height: auto;
|
|
max-width: 100%;
|
|
position: relative;
|
|
border-radius: 12rpx;
|
|
backface-visibility: hidden;
|
|
}
|
|
.photo-expand-image.hidden { opacity: 0; }
|
|
.photo-expand-image.visible { opacity: 1; transition: opacity 180ms ease; }
|
|
|
|
.scanner {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
/* width: calc(100% + 12rpx); */
|
|
/* height: calc(100% + 12rpx); */
|
|
width: 100%;
|
|
height: 100%;
|
|
transform: translate(-50%, -50%);
|
|
pointer-events: none;
|
|
border-radius: 12rpx;
|
|
/* background: linear-gradient(90deg, #D5A3E5 0%, #FDB5F0 30.43%, #F5838E 68.23%, #F0D9B6 100%); */
|
|
background-color: rgba(255, 255, 255, 0.35);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
opacity: 0;
|
|
}
|
|
|
|
.scanner-hidden { opacity: 0; }
|
|
.scanner-visible { animation: scannerFadeIn 1s 1000ms ease forwards; }
|
|
@keyframes scannerFadeIn { from { opacity: 0 } to { opacity: 1 } }
|
|
|
|
.star { position: relative; opacity: 0; transform-origin: center center; will-change: transform, opacity; }
|
|
.star::after {
|
|
content:"";
|
|
position:absolute;
|
|
width: 36rpx;
|
|
height: 40rpx;
|
|
border-radius: 8rpx;
|
|
background: linear-gradient(337deg, #DE9EFC 7.88%, #31DAFF 107.03%);
|
|
transform:rotate(45deg) skewX(22.5deg) skewY(22.5deg);
|
|
}
|
|
.star::before{
|
|
content:"";
|
|
position:absolute;
|
|
width: 36rpx;
|
|
height: 40rpx;
|
|
border-radius: 8rpx;
|
|
background: linear-gradient(78.35deg, #DE9EFC 7.88%, #31DAFF 107.03%);
|
|
transform:rotate(-45deg) skewX(22.5deg) skewY(22.5deg);
|
|
}
|
|
|
|
/* .scanner-visible .star { animation: starCycle var(--cycle) ease-in-out infinite; } */
|
|
.scanner-visible .star { animation: starCycle 3000ms ease-in-out infinite; }
|
|
.scanner-visible .star1 { animation-delay: 1000ms; }
|
|
.scanner-visible .star2 { animation-delay: 2000ms; }
|
|
.scanner-visible .star3 { animation-delay: 3000ms; }
|
|
|
|
@keyframes starCycle {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translate(-24rpx, -24rpx) scale(0.5);
|
|
}
|
|
34% {
|
|
opacity: 1;
|
|
transform: translate(-24rpx, -24rpx) scale(0.5);
|
|
}
|
|
67% {
|
|
opacity: 1;
|
|
transform: translate(0rpx, 0rpx) scale(1);
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
transform: translate(36rpx, 36rpx) scale(0.5);
|
|
}
|
|
}
|
|
|
|
.expand-border-bg {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: calc(100% + 16rpx);
|
|
height: calc(100% + 16rpx);
|
|
transform: translate(-50%, -50%);
|
|
pointer-events: none;
|
|
border-radius: 12rpx;
|
|
background: linear-gradient(90deg, #D5A3E5 0%, #FDB5F0 30.43%, #F5838E 68.23%, #F0D9B6 100%);
|
|
background-size: 600% 600%;
|
|
opacity: 0;
|
|
transition: opacity 600ms ease-out;
|
|
animation: AnimateBorder 4s ease infinite;
|
|
z-index: 0;
|
|
}
|
|
|
|
.button-wrapper {
|
|
position: relative;
|
|
}
|
|
|
|
.button {
|
|
display: block;
|
|
font-size: 24px;
|
|
line-height: 32px;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 2px;
|
|
padding: 16px 32px;
|
|
background-color: black;
|
|
color: white;
|
|
border-radius: 50px;
|
|
border: 0px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.button-bg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: calc(100% + 12rpx);
|
|
height: calc(100% + 12rpx);
|
|
background: linear-gradient(90deg, #D5A3E5 0%, #FDB5F0 30.43%, #F5838E 68.23%, #F0D9B6 100%);
|
|
background-size: 600% 600%;
|
|
border-radius: 50px;
|
|
animation: AnimateBorder 4s ease infinite;
|
|
-webkit-animation: AnimateBorder 4s ease infinite;
|
|
-moz-animation: AnimateBorder 4s ease infinite;
|
|
z-index: -1;
|
|
transform: translate(-6rpx, -6rpx);
|
|
transition: filter 1s ease-in;
|
|
}
|
|
|
|
@keyframes AnimateBorder {
|
|
0%{background-position:0% 50%}
|
|
50%{background-position:100% 50%}
|
|
100%{background-position:0% 50%}
|
|
}
|
|
|
|
.blank-content {
|
|
position: relative;
|
|
top: 0%;
|
|
left: 50%;
|
|
transform: translate(-50%, 10%) rotate(3deg);
|
|
width: 480rpx;
|
|
height: 480rpx;
|
|
border-style: solid;
|
|
border-color: #ffffff;
|
|
border-width: 24rpx 24rpx 64rpx 24rpx;
|
|
box-shadow: 0 8rpx 12rpx rgba(0, 0, 0, 0.2);
|
|
overflow: hidden;
|
|
opacity: 0;
|
|
}
|
|
|
|
.blank-content.hidden { opacity: 0; }
|
|
.blank-content.visible { animation: blankFadeIn 300ms ease forwards; }
|
|
@keyframes blankFadeIn { from { opacity: 0 } to { opacity: 1 } }
|
|
|
|
.blank-image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|