637 lines
10 KiB
CSS
637 lines
10 KiB
CSS
/* 公共样式表 */
|
||
page {
|
||
min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||
font-size: 28rpx;
|
||
background-color: #FFFFFF;
|
||
color: #333333;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* 禁止页面回弹 */
|
||
/* html,
|
||
body,
|
||
page {
|
||
overscroll-behavior: none;
|
||
overflow: hidden;
|
||
} */
|
||
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.page-body {
|
||
height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
|
||
/* width: 100%; */
|
||
/* height: 100%; */
|
||
}
|
||
|
||
body,
|
||
html {
|
||
height: 100%;
|
||
width: 100%;
|
||
overflow-x: hidden;
|
||
}
|
||
|
||
li {
|
||
list-style: none;
|
||
}
|
||
|
||
/* 布局调整 */
|
||
|
||
/* 点击动效 */
|
||
/* 缩小 */
|
||
.button-click {
|
||
/* transition: transform 0.1s ease; */
|
||
transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||
}
|
||
|
||
.button-click:active {
|
||
transform: scale(0.95);
|
||
}
|
||
|
||
/* 背景变色 */
|
||
.btn-light {
|
||
color: white;
|
||
border-radius: 16rpx;
|
||
transition: background-color 0.2s;
|
||
}
|
||
|
||
.btn-light:active {
|
||
background-color: rgba(189, 197, 254, 0.15);
|
||
}
|
||
|
||
|
||
.btn-incline {
|
||
transition: transform 0.2s ease;
|
||
transform-style: preserve-3d;
|
||
}
|
||
|
||
.btn-incline:active {
|
||
transform: perspective(600px) rotateY(6deg) rotateX(3deg);
|
||
}
|
||
|
||
.btn-feel {
|
||
transition: transform 0.5s ease;
|
||
/* transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); */
|
||
transform-style: preserve-3d;
|
||
}
|
||
|
||
.btn-feel:active {
|
||
transform: perspective(600px) rotateX(6deg) scale(0.98);
|
||
}
|
||
|
||
.press-button {
|
||
padding: 10px 20px;
|
||
background: #3A4750;
|
||
/* 深灰蓝 */
|
||
color: #ffffff;
|
||
font-size: 16px;
|
||
border: none;
|
||
border-radius: 6px;
|
||
cursor: pointer;
|
||
/* transition: transform 0.4s ease, box-shadow 0.1s ease; */
|
||
transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||
/* box-shadow: 0 4px 0 #2C3E50; */
|
||
}
|
||
|
||
.press-button:active {
|
||
transform: scale(0.95) translateY(2px);
|
||
/* box-shadow: 0 2px 0 #1C2833; */
|
||
}
|
||
|
||
/* 动画效果 */
|
||
.btn-shaky:active {
|
||
animation: shakeScale 0.6s;
|
||
}
|
||
|
||
@keyframes shakeScale {
|
||
0% {
|
||
transform: scale(1);
|
||
}
|
||
|
||
10% {
|
||
transform: scale(0.9) rotate(-3deg);
|
||
}
|
||
|
||
20% {
|
||
transform: scale(1.05) rotate(3deg);
|
||
}
|
||
|
||
30% {
|
||
transform: scale(0.95) rotate(-3deg);
|
||
}
|
||
|
||
40% {
|
||
transform: scale(1.02) rotate(3deg);
|
||
}
|
||
|
||
50% {
|
||
transform: scale(0.98) rotate(-2deg);
|
||
}
|
||
|
||
60% {
|
||
transform: scale(1.01) rotate(2deg);
|
||
}
|
||
|
||
70% {
|
||
transform: scale(0.99) rotate(-1deg);
|
||
}
|
||
|
||
80% {
|
||
transform: scale(1.005) rotate(1deg);
|
||
}
|
||
|
||
90% {
|
||
transform: scale(1) rotate(0deg);
|
||
}
|
||
|
||
100% {
|
||
transform: scale(1) rotate(0deg);
|
||
}
|
||
}
|
||
|
||
/* 控制hover */
|
||
.opctiy_8 {
|
||
opacity: 0.8 !important;
|
||
}
|
||
|
||
.opctiy_7 {
|
||
opacity: 0.7 !important;
|
||
}
|
||
|
||
.opctiy_6 {
|
||
opacity: 0.6 !important;
|
||
}
|
||
|
||
.opctiy_5 {
|
||
opacity: 0.5 !important;
|
||
}
|
||
|
||
.opctiy_4 {
|
||
opacity: 0.4 !important;
|
||
}
|
||
|
||
.opctiy_3 {
|
||
opacity: 0.3 !important;
|
||
}
|
||
|
||
.opctiy_2 {
|
||
opacity: 0.2 !important;
|
||
}
|
||
|
||
.opctiy_1 {
|
||
opacity: 0.1 !important;
|
||
}
|
||
|
||
/* 控制文字大小 */
|
||
.fs_10 {
|
||
font-size: 20rpx !important;
|
||
}
|
||
|
||
.fs_12 {
|
||
font-size: 24rpx !important;
|
||
}
|
||
|
||
.fs_14 {
|
||
font-size: 28rpx !important;
|
||
}
|
||
|
||
.fs_16 {
|
||
font-size: 32rpx !important;
|
||
}
|
||
|
||
.fs_18 {
|
||
font-size: 36rpx !important;
|
||
}
|
||
|
||
.fs_20 {
|
||
font-size: 40rpx !important;
|
||
}
|
||
|
||
.fs_22 {
|
||
font-size: 44rpx !important;
|
||
}
|
||
|
||
.fs_24 {
|
||
font-size: 48rpx !important;
|
||
}
|
||
|
||
.fs_26 {
|
||
font-size: 52rpx !important;
|
||
}
|
||
|
||
.fs_28 {
|
||
font-size: 56rpx !important;
|
||
}
|
||
|
||
.fs_30 {
|
||
font-size: 60rpx !important;
|
||
}
|
||
|
||
.fs_32 {
|
||
font-size: 64rpx !important;
|
||
}
|
||
|
||
/* 控制字体粗细 */
|
||
.fw_blod {
|
||
font-weight: bold;
|
||
}
|
||
|
||
/* 控制字体颜色 */
|
||
.color_D16B3F {
|
||
color: #D16B3F !important;
|
||
}
|
||
|
||
.color_C7331D {
|
||
color: #C7331D !important;
|
||
}
|
||
|
||
.color_666666 {
|
||
color: #666666 !important;
|
||
}
|
||
|
||
.color_F8A52F {
|
||
color: #F8A52F !important;
|
||
}
|
||
|
||
.color_999999 {
|
||
color: #999999 !important;
|
||
}
|
||
|
||
.color_C7331D {
|
||
color: #C7331D !important;
|
||
}
|
||
|
||
.color_333333 {
|
||
color: #333333 !important;
|
||
}
|
||
|
||
.color_FFFFFF {
|
||
color: #FFFFFF !important;
|
||
}
|
||
|
||
.color_E7612E {
|
||
color: #E7612E !important;
|
||
}
|
||
|
||
.color_EF4B37 {
|
||
color: #EF4B37 !important;
|
||
}
|
||
|
||
.color_5F5F5F {
|
||
color: #5F5F5F !important;
|
||
}
|
||
|
||
.color_FB7307 {
|
||
color: #FB7307 !important;
|
||
}
|
||
|
||
.color_256BFA {
|
||
color: #256BFA !important;
|
||
}
|
||
|
||
.color_4E8ADE {
|
||
color: #4E8ADE !important;
|
||
}
|
||
|
||
.color_D9D9D9 {
|
||
color: #D9D9D9 !important;
|
||
}
|
||
|
||
/* 控制左右距离 */
|
||
.mar_le30 {
|
||
margin-left: 60rpx !important;
|
||
}
|
||
|
||
.mar_le25 {
|
||
margin-left: 50rpx !important;
|
||
}
|
||
|
||
.mar_le20 {
|
||
margin-left: 40rpx !important;
|
||
}
|
||
|
||
.mar_le15 {
|
||
margin-left: 30rpx !important;
|
||
}
|
||
|
||
.mar_le10 {
|
||
margin-left: 20rpx !important;
|
||
}
|
||
|
||
.mar_le5 {
|
||
margin-left: 10rpx !important;
|
||
}
|
||
|
||
.mar_ri5 {
|
||
margin-right: 10rpx !important;
|
||
}
|
||
|
||
.mar_ri10 {
|
||
margin-right: 20rpx !important;
|
||
}
|
||
|
||
.mar_ri15 {
|
||
margin-right: 30rpx !important;
|
||
}
|
||
|
||
.mar_ri20 {
|
||
margin-right: 40rpx !important;
|
||
}
|
||
|
||
.mar_ri25 {
|
||
margin-right: 50rpx !important;
|
||
}
|
||
|
||
.mar_top0 {
|
||
margin-top: 0 !important;
|
||
}
|
||
|
||
.mar_top5 {
|
||
margin-top: 10rpx !important;
|
||
}
|
||
|
||
.mar_top10 {
|
||
margin-top: 20rpx !important;
|
||
}
|
||
|
||
.mar_top15 {
|
||
margin-top: 30rpx !important;
|
||
}
|
||
|
||
.mar_top20 {
|
||
margin-top: 40rpx !important;
|
||
}
|
||
|
||
.mar_top25 {
|
||
margin-top: 50rpx !important;
|
||
}
|
||
|
||
/* 控制字体粗细 */
|
||
.fw_blod {
|
||
font-weight: bold !important;
|
||
}
|
||
|
||
/* 控制背景色 */
|
||
.bg_e8 {
|
||
background-color: #e8e8e8 !important;
|
||
}
|
||
|
||
/* 控制背景色 */
|
||
.bg_cc {
|
||
background-color: #CCCCCC !important;
|
||
}
|
||
|
||
/* 控制背景色 */
|
||
.bg_ff {
|
||
background-color: #ffffff !important;
|
||
}
|
||
|
||
|
||
|
||
/* 弹性布局 */
|
||
.fl_box {
|
||
display: flex;
|
||
}
|
||
|
||
.fl_deri {
|
||
flex-direction: column;
|
||
}
|
||
|
||
.fl_row {
|
||
flex-direction: row;
|
||
}
|
||
|
||
.fl_justmiddle {
|
||
justify-content: center;
|
||
}
|
||
|
||
.fl_juststart {
|
||
justify-content: flex-start;
|
||
}
|
||
|
||
.fl_justbet {
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.fl_justround {
|
||
justify-content: space-around;
|
||
}
|
||
|
||
.fl_justend {
|
||
justify-content: flex-end;
|
||
}
|
||
|
||
.fl_almiddle {
|
||
align-items: center;
|
||
}
|
||
|
||
.fl_alstart {
|
||
align-items: flex-start;
|
||
}
|
||
|
||
.fl_alend {
|
||
align-items: flex-end;
|
||
}
|
||
|
||
.fl_1 {
|
||
flex: 1;
|
||
}
|
||
|
||
.fl_warp {
|
||
flex-wrap: wrap
|
||
}
|
||
|
||
.fl_nowarp {
|
||
flex-wrap: nowrap
|
||
}
|
||
|
||
.line_2 {
|
||
display: -webkit-box;
|
||
/* 让文本内容成为弹性盒 */
|
||
-webkit-box-orient: vertical;
|
||
/* 设置盒子的方向为垂直 */
|
||
-webkit-line-clamp: 2;
|
||
/* 限制最多显示两行 */
|
||
overflow: hidden;
|
||
/* 隐藏超出的文本 */
|
||
text-overflow: ellipsis;
|
||
/* 使用省略号 */
|
||
}
|
||
|
||
.line_1 {
|
||
display: -webkit-box;
|
||
/* 让文本内容成为弹性盒 */
|
||
-webkit-box-orient: vertical;
|
||
/* 设置盒子的方向为垂直 */
|
||
-webkit-line-clamp: 1;
|
||
/* 限制最多显示两行 */
|
||
overflow: hidden;
|
||
/* 隐藏超出的文本 */
|
||
text-overflow: ellipsis;
|
||
/* 使用省略号 */
|
||
}
|
||
|
||
.grayscale {
|
||
filter: grayscale(100%) opacity(0.6);
|
||
}
|
||
|
||
.height-100 {
|
||
height: 100%;
|
||
}
|
||
|
||
|
||
.pointEveNone {
|
||
pointer-events: none;
|
||
}
|
||
|
||
/*
|
||
*
|
||
* TransitionGroup 动画
|
||
* stagger 错峰
|
||
* fade-up-stagger --i 淡入上滑(经典错峰)
|
||
* pop-in-stagger --i 旋转缩放弹入(活泼)
|
||
* slide-left-stagger 从左侧滑入(消息流风格)
|
||
* blur-fade-stagger --i 渐显 + 模糊(毛玻璃感)
|
||
* bounce-up-stagger 从底部弹跳入场(物理感)
|
||
*
|
||
*/
|
||
/* 淡入上滑(经典错峰) */
|
||
.fade-up-stagger-enter-active {
|
||
transition: all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28);
|
||
transition-delay: calc(var(--i) * 0.1s);
|
||
}
|
||
|
||
.fade-up-stagger-enter-from {
|
||
opacity: 0;
|
||
transform: translateY(20px);
|
||
}
|
||
|
||
.fade-up-stagger-leave-active {
|
||
transition: opacity 0.25s ease;
|
||
}
|
||
|
||
.fade-up-stagger-leave-to {
|
||
opacity: 0;
|
||
}
|
||
|
||
/* */
|
||
|
||
.pop-in-stagger-enter-active {
|
||
transition: all 0.45s cubic-bezier(0.68, -0.55, 0.27, 1.55);
|
||
transition-delay: calc(var(--i) * 0.08s);
|
||
}
|
||
|
||
.pop-in-stagger-enter-from {
|
||
opacity: 0;
|
||
transform: scale(0.7) rotate(-10deg);
|
||
}
|
||
|
||
.pop-in-stagger-leave-active {
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.pop-in-stagger-leave-to {
|
||
opacity: 0;
|
||
transform: scale(0.9) rotate(5deg);
|
||
}
|
||
|
||
.slide-left-stagger-enter-active {
|
||
transition: all 0.35s ease-out;
|
||
transition-delay: calc(var(--i) * 0.07s);
|
||
}
|
||
|
||
.slide-left-stagger-enter-from {
|
||
opacity: 0;
|
||
transform: translateX(-100%);
|
||
}
|
||
|
||
.slide-left-stagger-leave-active {
|
||
transition: all 0.25s ease;
|
||
}
|
||
|
||
.slide-left-stagger-leave-to {
|
||
opacity: 0;
|
||
transform: translateX(50%);
|
||
}
|
||
|
||
/* 错峰动画 */
|
||
.stagger-enter-active {
|
||
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||
transition-delay: calc(var(--i) * 0.42s);
|
||
/* 关键:120ms 间隔 */
|
||
}
|
||
|
||
.stagger-enter-from {
|
||
opacity: 0;
|
||
transform: translateY(30px) scale(0.95);
|
||
/* 更大位移 + 轻微缩放 */
|
||
}
|
||
|
||
.stagger-leave-active {
|
||
transition: all 0.25s ease;
|
||
}
|
||
|
||
.stagger-leave-to {
|
||
opacity: 0;
|
||
transform: translateX(20px);
|
||
}
|
||
|
||
.stagger-move {
|
||
transition: transform 0.4s ease;
|
||
}
|
||
|
||
.blur-fade-stagger-enter-active {
|
||
transition: all 0.5s ease;
|
||
transition-delay: calc(var(--i) * 0.09s);
|
||
}
|
||
|
||
.blur-fade-stagger-enter-from {
|
||
opacity: 0;
|
||
filter: blur(8px);
|
||
transform: scale(1.02);
|
||
}
|
||
|
||
.blur-fade-stagger-leave-active {
|
||
transition: all 0.2s ease;
|
||
}
|
||
|
||
.blur-fade-stagger-leave-to {
|
||
opacity: 0;
|
||
filter: blur(4px);
|
||
}
|
||
|
||
.bounce-up-stagger-enter-active {
|
||
animation: stagger-bounce 0.6s forwards;
|
||
animation-delay: calc(var(--i) * 0.12s);
|
||
}
|
||
|
||
.bounce-up-stagger-leave-active {
|
||
transition: all 0.25s ease;
|
||
}
|
||
|
||
.bounce-up-stagger-leave-to {
|
||
opacity: 0;
|
||
transform: translateY(30px);
|
||
}
|
||
|
||
@keyframes stagger-bounce {
|
||
0% {
|
||
opacity: 0;
|
||
transform: translateY(100px) scale(0.8);
|
||
}
|
||
|
||
60% {
|
||
transform: translateY(-10px) scale(1.05);
|
||
}
|
||
|
||
80% {
|
||
transform: translateY(5px) scale(0.98);
|
||
}
|
||
|
||
100% {
|
||
opacity: 1;
|
||
transform: translateY(0) scale(1);
|
||
}
|
||
} |