mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-16 09:20:43 +08:00
优化移动端分页导航显示效果
This commit is contained in:
parent
62fa776ec3
commit
2283747d6c
@ -2885,6 +2885,19 @@ div.jsoneditor-treepath * {
|
|||||||
.pagination-settings .dropdown-toggle {
|
.pagination-settings .dropdown-toggle {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 移动端分页按钮优化:确保不换行 */
|
||||||
|
.pagination-controls {
|
||||||
|
flex-wrap: nowrap !important; /* 强制不换行 */
|
||||||
|
max-width: 100%;
|
||||||
|
overflow-x: auto;
|
||||||
|
scrollbar-width: none; /* Firefox */
|
||||||
|
-ms-overflow-style: none; /* IE and Edge */
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-controls::-webkit-scrollbar {
|
||||||
|
display: none; /* Chrome, Safari and Opera */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination-settings {
|
.pagination-settings {
|
||||||
|
|||||||
@ -5017,14 +5017,36 @@
|
|||||||
getVisiblePageNumbers() {
|
getVisiblePageNumbers() {
|
||||||
const current = parseInt(this.historyParams.page) || 1;
|
const current = parseInt(this.historyParams.page) || 1;
|
||||||
const total = parseInt(this.totalPages) || 1;
|
const total = parseInt(this.totalPages) || 1;
|
||||||
const delta = 2; // 当前页左右显示的页码数
|
// 根据屏幕宽度动态调整显示的页码数:移动端显示较少页码,桌面端显示较多页码
|
||||||
|
const isMobile = window.innerWidth <= 768;
|
||||||
|
const delta = isMobile ? 1 : 2; // 移动端左右各显示1个页码,桌面端左右各显示2个页码
|
||||||
|
|
||||||
// 处理特殊情况
|
// 处理特殊情况
|
||||||
if (total <= 1) return [];
|
if (total <= 1) return [];
|
||||||
|
|
||||||
let range = [];
|
let range = [];
|
||||||
|
|
||||||
// 确定显示范围
|
// 移动端简化逻辑:只显示当前页附近的少数页码
|
||||||
|
if (isMobile) {
|
||||||
|
// 移动端:最多显示4个中间页码按钮(不包括第1页和最后1页),总共5个页码
|
||||||
|
if (current <= 4) {
|
||||||
|
// 当前页在前面时,显示 1, 2, 3, 4
|
||||||
|
for (let i = 2; i <= Math.min(4, total - 1); i++) {
|
||||||
|
range.push(i);
|
||||||
|
}
|
||||||
|
} else if (current >= total - 3) {
|
||||||
|
// 当前页在后面时,显示倒数几页
|
||||||
|
for (let i = Math.max(2, total - 3); i <= total - 1; i++) {
|
||||||
|
range.push(i);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 当前页在中间时,显示当前页前后各1页,总共3个中间页码
|
||||||
|
range.push(current - 1);
|
||||||
|
range.push(current);
|
||||||
|
range.push(current + 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 桌面端保持原有逻辑
|
||||||
let rangeStart = Math.max(2, current - delta);
|
let rangeStart = Math.max(2, current - delta);
|
||||||
let rangeEnd = Math.min(total - 1, current + delta);
|
let rangeEnd = Math.min(total - 1, current + delta);
|
||||||
|
|
||||||
@ -5043,6 +5065,7 @@
|
|||||||
for (let i = rangeStart; i <= rangeEnd; i++) {
|
for (let i = rangeStart; i <= rangeEnd; i++) {
|
||||||
range.push(i);
|
range.push(i);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return range;
|
return range;
|
||||||
},
|
},
|
||||||
@ -6273,14 +6296,36 @@
|
|||||||
getVisibleFolderPageNumbers() {
|
getVisibleFolderPageNumbers() {
|
||||||
const current = parseInt(this.fileManager.currentPage) || 1;
|
const current = parseInt(this.fileManager.currentPage) || 1;
|
||||||
const total = parseInt(this.fileManager.totalPages) || 1;
|
const total = parseInt(this.fileManager.totalPages) || 1;
|
||||||
const delta = 2; // 当前页左右显示的页码数
|
// 根据屏幕宽度动态调整显示的页码数:移动端显示较少页码,桌面端显示较多页码
|
||||||
|
const isMobile = window.innerWidth <= 768;
|
||||||
|
const delta = isMobile ? 1 : 2; // 移动端左右各显示1个页码,桌面端左右各显示2个页码
|
||||||
|
|
||||||
// 处理特殊情况
|
// 处理特殊情况
|
||||||
if (total <= 1) return [];
|
if (total <= 1) return [];
|
||||||
|
|
||||||
let range = [];
|
let range = [];
|
||||||
|
|
||||||
// 确定显示范围
|
// 移动端简化逻辑:只显示当前页附近的少数页码
|
||||||
|
if (isMobile) {
|
||||||
|
// 移动端:最多显示4个中间页码按钮(不包括第1页和最后1页),总共5个页码
|
||||||
|
if (current <= 4) {
|
||||||
|
// 当前页在前面时,显示 1, 2, 3, 4
|
||||||
|
for (let i = 2; i <= Math.min(4, total - 1); i++) {
|
||||||
|
range.push(i);
|
||||||
|
}
|
||||||
|
} else if (current >= total - 3) {
|
||||||
|
// 当前页在后面时,显示倒数几页
|
||||||
|
for (let i = Math.max(2, total - 3); i <= total - 1; i++) {
|
||||||
|
range.push(i);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 当前页在中间时,显示当前页前后各1页,总共3个中间页码
|
||||||
|
range.push(current - 1);
|
||||||
|
range.push(current);
|
||||||
|
range.push(current + 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 桌面端保持原有逻辑
|
||||||
let rangeStart = Math.max(2, current - delta);
|
let rangeStart = Math.max(2, current - delta);
|
||||||
let rangeEnd = Math.min(total - 1, current + delta);
|
let rangeEnd = Math.min(total - 1, current + delta);
|
||||||
|
|
||||||
@ -6299,6 +6344,7 @@
|
|||||||
for (let i = rangeStart; i <= rangeEnd; i++) {
|
for (let i = rangeStart; i <= rangeEnd; i++) {
|
||||||
range.push(i);
|
range.push(i);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return range;
|
return range;
|
||||||
},
|
},
|
||||||
@ -6864,17 +6910,36 @@
|
|||||||
getVisibleFolderPageNumbers() {
|
getVisibleFolderPageNumbers() {
|
||||||
const current = parseInt(this.fileManager.currentPage) || 1;
|
const current = parseInt(this.fileManager.currentPage) || 1;
|
||||||
const total = parseInt(this.fileManager.totalPages) || 1;
|
const total = parseInt(this.fileManager.totalPages) || 1;
|
||||||
const delta = 2; // 当前页左右显示的页码数
|
// 根据屏幕宽度动态调整显示的页码数:移动端显示较少页码,桌面端显示较多页码
|
||||||
|
const isMobile = window.innerWidth <= 768;
|
||||||
|
const delta = isMobile ? 1 : 2; // 移动端左右各显示1个页码,桌面端左右各显示2个页码
|
||||||
|
|
||||||
// 处理特殊情况
|
// 处理特殊情况
|
||||||
if (total <= 1) return [];
|
if (total <= 1) return [];
|
||||||
if (total <= 5) {
|
|
||||||
return Array.from({ length: total - 2 }, (_, i) => i + 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
let range = [];
|
let range = [];
|
||||||
|
|
||||||
// 确定显示范围
|
// 移动端简化逻辑:只显示当前页附近的少数页码
|
||||||
|
if (isMobile) {
|
||||||
|
// 移动端:最多显示4个中间页码按钮(不包括第1页和最后1页),总共5个页码
|
||||||
|
if (current <= 4) {
|
||||||
|
// 当前页在前面时,显示 1, 2, 3, 4
|
||||||
|
for (let i = 2; i <= Math.min(4, total - 1); i++) {
|
||||||
|
range.push(i);
|
||||||
|
}
|
||||||
|
} else if (current >= total - 3) {
|
||||||
|
// 当前页在后面时,显示倒数几页
|
||||||
|
for (let i = Math.max(2, total - 3); i <= total - 1; i++) {
|
||||||
|
range.push(i);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 当前页在中间时,显示当前页前后各1页,总共3个中间页码
|
||||||
|
range.push(current - 1);
|
||||||
|
range.push(current);
|
||||||
|
range.push(current + 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 桌面端保持原有逻辑
|
||||||
let rangeStart = Math.max(2, current - delta);
|
let rangeStart = Math.max(2, current - delta);
|
||||||
let rangeEnd = Math.min(total - 1, current + delta);
|
let rangeEnd = Math.min(total - 1, current + delta);
|
||||||
|
|
||||||
@ -6893,6 +6958,7 @@
|
|||||||
for (let i = rangeStart; i <= rangeEnd; i++) {
|
for (let i = rangeStart; i <= rangeEnd; i++) {
|
||||||
range.push(i);
|
range.push(i);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return range;
|
return range;
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user