Files
2026-05-11 11:11:11 +08:00

364 lines
6.6 KiB
CSS
Raw Permalink 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.

.header-top {
position: sticky;
top: 0;
background: #fff;
z-index: 9;
}
.header-search {
padding-left: 24rpx;
box-sizing: border-box;
}
/* 状态 Tab + 排序弹窗入口(仅 live_status_tab_list 为 Tab排序在弹窗 */
.status-filter-row {
width: 100%;
padding: 10rpx 0 16rpx 0;
padding-left: 24rpx;
box-sizing: border-box;
}
.status-filter-row .status-tabs-scroll {
width: 0;
flex: 1;
min-width: 0;
padding: 0 8rpx 0 0;
box-sizing: border-box;
}
.status-tabs-placeholder {
min-height: 40rpx;
}
.status-filter-row .nav-tabs-filter {
flex-shrink: 0;
padding: 4rpx 24rpx 4rpx 8rpx;
box-sizing: border-box;
}
/* 直播状态 Tab文档 live_status_tab_list */
.status-tabs-scroll {
width: 100%;
box-sizing: border-box;
}
.status-tabs-scroll-content {
display: inline-flex;
align-items: center;
flex-wrap: nowrap;
gap: 32rpx;
}
.status-tab-item {
position: relative;
flex-shrink: 0;
white-space: nowrap;
padding-bottom: 12rpx;
font-weight: 500;
font-size: 26rpx;
color: #888;
line-height: 36rpx;
}
.status-tab-item.active {
color: #333;
}
.status-tab-item::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 3px;
background-color: #333;
transition: width 0.25s ease;
border-radius: 6rpx;
}
.status-tab-item.active::after {
width: 40rpx;
}
/* 排序依据弹窗(与 pages/plugins/video/search 一致,仅保留排序) */
.filter-group {
margin-bottom: 40rpx;
}
.filter-title {
font-weight: 400;
font-size: 24rpx;
color: #666666;
line-height: 34rpx;
margin-bottom: 24rpx;
}
.filter-options {
display: flex;
flex-wrap: wrap;
gap: 20rpx;
}
.filter-option {
font-weight: 400;
font-size: 24rpx;
color: #666666;
line-height: 34rpx;
padding: 10rpx 32rpx;
background-color: #e8e8e8;
border-radius: 4rpx;
}
.filter-option.active {
background-color: #333;
color: #fff;
}
.nav-list-more {
padding: 20rpx 40rpx;
max-height: 70vh;
}
::v-deep .popup .popup-content {
z-index: 8 !important;
}
::v-deep .popup .popup-mask {
z-index: 8 !important;
}
/* #ifdef MP-WEIXIN | APP-PLUS */
.tabs-scroll ::v-deep ::-webkit-scrollbar {
width: 0rpx!important;
height: 0rpx!important;
background-color: transparent;
}
/* #endif */
/* 推荐直播间列表 */
.recommend-lives .live-grid {
column-count: 2;
column-gap: 20rpx;
column-fill: balance;
}
.recommend-lives .live-card-item {
break-inside: avoid;
padding-bottom: 20rpx;
}
.recommend-lives .live-card {
overflow: hidden;
background-color: #fff;
box-shadow: 0 4rpx 8rpx rgba(0, 0, 0, 0.1);
border-radius: 8rpx;
width: 100%;
}
.recommend-lives .live-cover {
position: relative;
width: 100%;
}
.recommend-lives .live-thumbnail {
width: 100%;
height: 200rpx;
object-fit: cover;
}
/* 直播状态标签 */
.live-status-tag {
position: absolute;
top: 10rpx;
left: 10rpx;
padding: 4rpx 12rpx;
border-radius: 4rpx;
font-size: 22rpx;
color: #fff;
background-color: #999;
display: flex;
align-items: center;
gap: 6rpx;
}
.live-status-tag.status-1 {
background-color: #E93633;
}
.live-status-tag.status-2 {
background-color: #F5C242;
}
.live-status-tag.status-3 {
background-color: #666;
}
/* 三个竖条随机高度动画 - 类似商品页讲解中效果 */
.live-status-dots {
display: flex;
flex-direction: row;
justify-content: center;
align-items: flex-end;
height: 16rpx;
gap: 4rpx;
}
.live-status-dots .dot {
width: 4rpx;
background-color: #fff;
border-radius: 2rpx;
transform-origin: bottom;
}
/* 第一个条 - 使用不同的动画 */
.live-status-dots .dot:nth-child(1) {
animation: bar1-random 1.1s infinite ease-in-out both;
}
/* 第二个条 - 使用不同的动画 */
.live-status-dots .dot:nth-child(2) {
animation: bar2-random 1.4s infinite ease-in-out both;
}
/* 第三个条 - 使用不同的动画 */
.live-status-dots .dot:nth-child(3) {
animation: bar3-random 1.2s infinite ease-in-out both;
}
/* 条1的随机高度变化 - 最大高度不超过16rpx */
@keyframes bar1-random {
0% { height: 4rpx; }
10% { height: 8rpx; }
20% { height: 6rpx; }
30% { height: 12rpx; }
40% { height: 10rpx; }
50% { height: 14rpx; }
60% { height: 8rpx; }
70% { height: 12rpx; }
80% { height: 6rpx; }
90% { height: 10rpx; }
100% { height: 4rpx; }
}
/* 条2的随机高度变化 - 最大高度不超过16rpx */
@keyframes bar2-random {
0% { height: 6rpx; }
10% { height: 10rpx; }
20% { height: 8rpx; }
30% { height: 14rpx; }
40% { height: 6rpx; }
50% { height: 12rpx; }
60% { height: 10rpx; }
70% { height: 8rpx; }
80% { height: 12rpx; }
90% { height: 6rpx; }
100% { height: 6rpx; }
}
/* 条3的随机高度变化 - 最大高度不超过16rpx */
@keyframes bar3-random {
0% { height: 8rpx; }
10% { height: 6rpx; }
20% { height: 12rpx; }
30% { height: 10rpx; }
40% { height: 14rpx; }
50% { height: 6rpx; }
60% { height: 10rpx; }
70% { height: 8rpx; }
80% { height: 10rpx; }
90% { height: 12rpx; }
100% { height: 8rpx; }
}
/* 保留旧的样式兼容 */
.live-status-dot {
width: 12rpx;
height: 12rpx;
background-color: #fff;
border-radius: 50%;
animation: pulse 1.5s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
/* 观看人数 */
.live-view-count {
position: absolute;
bottom: 10rpx;
right: 10rpx;
padding: 4rpx 12rpx;
border-radius: 4rpx;
font-size: 22rpx;
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
gap: 6rpx;
}
.recommend-lives .live-info {
padding: 20rpx;
padding-top: 10rpx;
gap: 20rpx;
}
.recommend-lives .live-title {
font-weight: 500;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
}
.recommend-lives .live-anchor,
.recommend-lives .live-likes {
font-weight: 400;
font-size: 24rpx;
color: #999999;
line-height: 34rpx;
}
.live-anchor .anchor-avatar {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
}
.live-anchor .anchor-name {
max-width: 150rpx;
}
/* 筛选条件弹窗样式 */
.filter-group {
margin-bottom: 40rpx;
}
.filter-title {
font-weight: 400;
font-size: 24rpx;
color: #666666;
line-height: 34rpx;
margin-bottom: 24rpx;
}
.filter-options {
display: flex;
flex-wrap: wrap;
gap: 20rpx;
}
.filter-option {
font-weight: 400;
font-size: 24rpx;
color: #666666;
line-height: 34rpx;
padding: 10rpx 32rpx;
background-color: #e8e8e8;
border-radius: 4rpx;
cursor: pointer;
transition: background-color 0.3s ease;
}
.filter-option:hover {
background-color: #e0e0e0;
}
.filter-option.active {
background-color: #333;
color: #fff;
}
.nav-list-more {
padding: 20rpx 40rpx;
max-height: 70vh;
}
::v-deep .popup .popup-content {
z-index: 8 !important;
}
::v-deep .popup .popup-mask {
z-index: 8 !important;
}