2025-04-16 19:47:39 +08:00

369 lines
7.1 KiB
SCSS
Vendored

.mobile-tabbar {
display: none;
flex-direction: column;
justify-content: flex-end;
position: fixed;
left: 0;
bottom: 0;
right: 0;
z-index: 99;
.common-network-exception {
position: fixed;
bottom: 72px;
width: 100%;
.ivu-alert {
margin: 0 12px;
&.ivu-alert-with-icon {
.ivu-alert-icon {
top: 50%;
transform: translateY(-50%);
}
}
&.ivu-alert-error {
background-color: rgba(255, 240, 231, 0.95);
}
}
}
.tabbar-box {
position: relative;
z-index: 3;
display: flex;
align-items: center;
justify-content: center;
padding: 0;
margin: 0;
height: 60px;
background-color: #f8f8f8;
&:before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
z-index: 1;
transform: scaleY(0.5);
background-color: rgba(28, 34, 43, 0.05);
}
> li {
flex: 1;
width: 0;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
list-style: none;
padding: 0;
margin: 0;
color: $primary-text-color;
position: relative;
.taskfont {
font-size: 24px;
line-height: 34px;
}
.tabbar-title {
font-size: 12px;
line-height: 18px;
max-width: 92%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.tabbar-badge {
position: absolute;
top: 0;
left: 50%;
transform: scale(0.8);
.ivu-badge-count {
font-size: 14px;
}
}
&.active {
color: $primary-color;
}
}
}
}
.mobile-back {
display: none;
.back-semicircle {
position: fixed;
top: 200px;
left: -50px;
width: 500px;
height: 500px;
background-color: rgba(0, 0, 0, 0.1);
z-index: 9999;
border-radius: 50%;
transform: translate(-460px, -50%);
animation: mobile-back-animation 200ms forwards;
}
}
@keyframes mobile-back-animation {
from {
left: -50px;
}
to {
left: 0;
}
}
.mobile-notification {
position: fixed;
left: 50%;
top: 20px;
z-index: 9998;
padding: 12px;
border-radius: 8px;
border: 1px solid #ebeef5;
background-color: #fff;
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
width: 90%;
max-width: 320px;
transform: translate(-50%, 0);
.common-avatar {
&.avatar-wrapper {
align-items: flex-start;
.avatar-name {
flex: 1;
width: 0;
margin-left: 12px;
> span {
font-weight: bold;
}
}
}
}
.notification-desc {
float: left;
margin-top: -18px;
margin-left: 52px;
font-size: 13px;
line-height: 18px;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
}
// 渐见
.mobile-fade-enter-active {
animation: mobile-fade-enter-animation 0.2s forwards;
}
.mobile-fade-leave-active {
animation: mobile-fade-leave-animation 0.2s backwards;
}
@keyframes mobile-fade-enter-animation {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes mobile-fade-leave-animation {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
// 底部划上
.mobile-slide-enter-active {
animation: mobile-slide-enter-animation 0.2s forwards;
}
.mobile-slide-leave-active {
animation: mobile-slide-leave-animation 0.2s backwards;
}
@keyframes mobile-slide-enter-animation {
from {
transform: translate(0, 15%);
opacity: 0;
}
to {
transform: translate(0, 0);
opacity: 1;
}
}
@keyframes mobile-slide-leave-animation {
from {
transform: translate(0, 0);
opacity: 1;
}
to {
transform: translate(0, 15%);
opacity: 0;
}
}
// 通知(顶部划入)
.mobile-notify-enter-active {
animation: mobile-notify-enter-animation 0.3s forwards;
}
.mobile-notify-leave-active {
animation: mobile-notify-leave-animation 0.3s backwards;
}
@keyframes mobile-notify-enter-animation {
from {
transform: translate3d(-50%, -100%, 0);
opacity: 0;
}
to {
transform: translate3d(-50%, 0, 0);
opacity: 1;
}
}
@keyframes mobile-notify-leave-animation {
from {
transform: translate3d(-50%, 0, 0);
opacity: 1;
}
to {
transform: translate3d(-50%, -100%, 0);
opacity: 0;
}
}
// 对话框(右侧划入)
.mobile-dialog-enter-active {
animation: mobile-dialog-enter-animation 0.3s forwards;
}
.mobile-dialog-leave-active {
animation: mobile-dialog-leave-animation 0.3s backwards;
.ql-editor {
caret-color: transparent;
}
}
@keyframes mobile-dialog-enter-animation {
from {
transform: translate3d(100%, 0, 0);
opacity: 0;
}
to {
transform: translate3d(0%, 0, 0);
opacity: 1;
}
}
@keyframes mobile-dialog-leave-animation {
from {
transform: translate3d(0%, 0, 0);
opacity: 1;
}
to {
transform: translate3d(100%, 0, 0);
opacity: 0;
}
}
// 录音发送(缩放)
.mobile-send-enter-active {
animation: mobile-send-enter-animation 0.3s forwards;
}
.mobile-send-leave-active {
animation: mobile-send-leave-animation 0.3s backwards;
}
@keyframes mobile-send-enter-animation {
from {
transform: translate(-50%, -50%) scale(0);
opacity: 0;
}
to {
transform: translate(-50%, -50%) scale(1);
opacity: 1;
}
}
@keyframes mobile-send-leave-animation {
from {
transform: translate(-50%, -50%) scale(1);
opacity: 1;
}
to {
transform: translate(-50%, -50%) scale(0);
opacity: 0;
}
}
body.window-touch {
user-select: none;
a, img {
-webkit-touch-callout: none;
}
.mobile-back {
display: block;
}
input,
textarea,
.user-select-auto {
caret-color: $flow-status-end-color;
user-select: auto;
a, img {
-webkit-touch-callout: default;
}
.content-text,
.content-file {
img {
-webkit-touch-callout: none;
}
}
}
}
body.window-portrait {
.mobile-notification {
top: 12px;
width: 94%;
max-width: none;
}
}