|
|
@@ -146,7 +146,7 @@
|
|
|
|
|
|
#readerWorkspace {
|
|
|
display: grid;
|
|
|
- grid-template-columns: minmax(78px, auto) minmax(0, 1fr);
|
|
|
+ grid-template-columns: minmax(68px, auto) minmax(0, 1fr);
|
|
|
grid-template-rows: minmax(0, 1fr);
|
|
|
align-items: stretch;
|
|
|
min-height: 0;
|
|
|
@@ -162,7 +162,7 @@
|
|
|
}
|
|
|
|
|
|
body.reader-position-right #readerWorkspace {
|
|
|
- grid-template-columns: minmax(0, 1fr) minmax(78px, auto);
|
|
|
+ grid-template-columns: minmax(0, 1fr) minmax(68px, auto);
|
|
|
}
|
|
|
|
|
|
body.reader-position-top #readerWorkspace,
|
|
|
@@ -194,7 +194,7 @@
|
|
|
body.reader-position-left #readerControls,
|
|
|
body.reader-position-right #readerControls {
|
|
|
flex-direction: column;
|
|
|
- width: calc(var(--reader-controls-size) + var(--reader-controls-padding) * 2);
|
|
|
+ width: calc(var(--reader-controls-size) + var(--reader-controls-padding) * 2 - 6px);
|
|
|
}
|
|
|
|
|
|
body.reader-position-right #readerControls {
|
|
|
@@ -230,7 +230,7 @@
|
|
|
|
|
|
body.reader-position-left #readerControls.collapsed,
|
|
|
body.reader-position-right #readerControls.collapsed {
|
|
|
- width: calc(var(--reader-controls-size) + 16px);
|
|
|
+ width: calc(var(--reader-controls-size) + 10px);
|
|
|
}
|
|
|
|
|
|
#readerControls.collapsed .reader-tool:not(.reader-tool-collapse),
|
|
|
@@ -1186,15 +1186,6 @@
|
|
|
</button>
|
|
|
<div id="readerSettingsPanel" class="reader-settings-panel">
|
|
|
<div class="reader-settings-title">阅读栏设置</div>
|
|
|
- <div class="reader-settings-group">
|
|
|
- <label class="reader-settings-label">位置</label>
|
|
|
- <div class="reader-settings-options" data-setting-group="position">
|
|
|
- <button class="reader-settings-option" type="button" data-position="left">左侧</button>
|
|
|
- <button class="reader-settings-option" type="button" data-position="right">右侧</button>
|
|
|
- <button class="reader-settings-option" type="button" data-position="top">顶部</button>
|
|
|
- <button class="reader-settings-option" type="button" data-position="bottom">底部</button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
<div class="reader-settings-group">
|
|
|
<label class="reader-settings-label">尺寸</label>
|
|
|
<div class="reader-settings-options" data-setting-group="size">
|
|
|
@@ -1563,7 +1554,6 @@
|
|
|
const currentFilePath = new URLSearchParams(window.location.search).get('file') || '';
|
|
|
let isRestoringProgress = false;
|
|
|
const NIGHT_MODE_STORAGE_KEY = 'reader_pro.night_mode';
|
|
|
- const READER_POSITION_STORAGE_KEY = 'reader_pro.controls.position';
|
|
|
const READER_SIZE_STORAGE_KEY = 'reader_pro.controls.size';
|
|
|
const READER_COLLAPSED_STORAGE_KEY = 'reader_pro.controls.collapsed';
|
|
|
|
|
|
@@ -1588,14 +1578,10 @@
|
|
|
}
|
|
|
|
|
|
function setReaderControlsPosition(position) {
|
|
|
- const normalized = ['left', 'right', 'top', 'bottom'].includes(position) ? position : 'left';
|
|
|
+ const normalized = ['left', 'right'].includes(position) ? position : 'left';
|
|
|
document.body.classList.remove('reader-position-left', 'reader-position-right', 'reader-position-top', 'reader-position-bottom');
|
|
|
document.body.classList.add(`reader-position-${normalized}`);
|
|
|
document.body.dataset.readerPosition = normalized;
|
|
|
- localStorage.setItem(READER_POSITION_STORAGE_KEY, normalized);
|
|
|
- document.querySelectorAll('[data-position]').forEach(button => {
|
|
|
- button.classList.toggle('is-selected', button.dataset.position === normalized);
|
|
|
- });
|
|
|
updateReaderToggleIcon();
|
|
|
}
|
|
|
|
|
|
@@ -1611,8 +1597,7 @@
|
|
|
}
|
|
|
|
|
|
function initReaderControls() {
|
|
|
- const defaultPosition = window.innerWidth <= 768 ? 'bottom' : 'left';
|
|
|
- setReaderControlsPosition(localStorage.getItem(READER_POSITION_STORAGE_KEY) || defaultPosition);
|
|
|
+ setReaderControlsPosition('left');
|
|
|
setReaderControlsSize(localStorage.getItem(READER_SIZE_STORAGE_KEY) || 'small');
|
|
|
setReaderControlsCollapsed(localStorage.getItem(READER_COLLAPSED_STORAGE_KEY) === '1');
|
|
|
}
|
|
|
@@ -1713,17 +1698,9 @@
|
|
|
readerSettingsButton.setAttribute('aria-expanded', 'false');
|
|
|
}
|
|
|
});
|
|
|
- readerSettingsPanel.querySelectorAll('[data-position]').forEach(button => {
|
|
|
- button.addEventListener('click', () => setReaderControlsPosition(button.dataset.position));
|
|
|
- });
|
|
|
readerSettingsPanel.querySelectorAll('[data-size]').forEach(button => {
|
|
|
button.addEventListener('click', () => setReaderControlsSize(button.dataset.size));
|
|
|
});
|
|
|
- window.addEventListener('resize', () => {
|
|
|
- if (!localStorage.getItem(READER_POSITION_STORAGE_KEY)) {
|
|
|
- setReaderControlsPosition(window.innerWidth <= 768 ? 'bottom' : 'left');
|
|
|
- }
|
|
|
- }, { passive: true });
|
|
|
|
|
|
async function saveReadingProgress(pageNumber) {
|
|
|
if (!currentFilePath || !Number.isInteger(pageNumber) || pageNumber < 1) return;
|