guanghulab/modules/m-channel/backup-混乱版/channel-transition.css
2026-05-10 13:12:44 +08:00

84 lines
1.7 KiB
CSS
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.

/**
* channel-transition.css
* 路由过渡动画 - 让切换像呼吸一样自然
* 提供两种模式:淡入淡出(fade) / 滑入滑出(slide)
*/
/* 基础容器样式 */
.route-container {
position: relative;
width: 100%;
min-height: 200px;
}
/* 所有路由页面默认绝对定位,便于重叠动画 */
.route-page {
position: absolute;
top: 0;
left: 0;
width: 100%;
transition: opacity 0.3s ease, transform 0.3s ease;
}
/* 淡入淡出模式 */
.fade-mode .route-page {
opacity: 0;
transform: scale(0.98);
pointer-events: none;
}
.fade-mode .route-page.active {
opacity: 1;
transform: scale(1);
pointer-events: auto;
position: relative; /* 激活页变为相对定位,占据文档流高度 */
}
/* 滑入滑出模式 */
.slide-mode .route-page {
opacity: 1;
transform: translateX(0);
pointer-events: none;
}
.slide-mode .route-page.active {
position: relative;
pointer-events: auto;
}
/* 进入动画:从右侧滑入 */
.slide-mode .route-page.slide-enter {
transform: translateX(100%);
}
.slide-mode .route-page.active.slide-enter {
transform: translateX(0);
}
/* 离开动画向左侧滑出用于后退时的反向 */
.slide-mode .route-page.slide-exit {
transform: translateX(-100%);
}
/* 前进/后退方向控制 */
.slide-mode.forward .route-page.slide-enter {
transform: translateX(100%);
}
.slide-mode.forward .route-page.active.slide-enter {
transform: translateX(0);
}
.slide-mode.backward .route-page.slide-enter {
transform: translateX(-100%);
}
.slide-mode.backward .route-page.active.slide-enter {
transform: translateX(0);
}
/* 防止快速点击时动画重叠 */
.route-page {
will-change: transform, opacity;
}