Fix declaration order

This commit is contained in:
caribaud 2023-06-05 00:17:23 +02:00
parent 7299157521
commit f1cfb326d5
1 changed files with 119 additions and 120 deletions

View File

@ -64,6 +64,63 @@ var MOUSEWHELL_WAIT = false;
// UTILITIES // UTILITIES
// ============= // =============
// Dimensions utilites
// -------------------
function getPagesCount()
{
return READER_PAGES.childElementCount;
}
function pageOriginalHeight(pageNumber)
{
return READER_PAGES.children[pageNumber - 1].naturalHeight;
}
function pageOriginalWidth(pageNumber)
{
return READER_PAGES.children[pageNumber - 1].naturalWidth;
}
function readerFrameRatio()
{
return READER_CONTENT_FRAME.clientWidth / READER_CONTENT_FRAME.clientHeight;
}
function pageMaxHeight()
{
let maxHeight = 0;
for (let i = 0; i < READER_PAGES.children.length; i += 1)
{
if(READER_PAGES.children[i].naturalHeight > maxHeight)
{
maxHeight = READER_PAGES.children[i].naturalHeight;
}
}
return maxHeight;
}
function pageVerticalOffset(pageNumber)
{
return ( pageMaxHeight() - pageOriginalHeight(pageNumber) ) / 2;
}
function previousPagesWidth(pageNumber)
{
// The width of all previous pages relative to the provided index
let totalWidth = 0;
for (let idx = 0; idx < pageNumber - 1; idx += 1)
{
totalWidth += READER_PAGES.children[idx].naturalWidth;
}
return totalWidth;
}
// Zooms utilites // Zooms utilites
// -------------- // --------------
@ -167,121 +224,21 @@ function updateProgressBar()
PROGRESS_BAR.style.width = getReadingProgressPercent() + "%"; PROGRESS_BAR.style.width = getReadingProgressPercent() + "%";
} }
// Dimensions utilites
// -------------------
function getPagesCount()
{
return READER_PAGES.childElementCount;
}
function pageOriginalHeight(pageNumber)
{
return READER_PAGES.children[pageNumber - 1].naturalHeight;
}
function pageOriginalWidth(pageNumber)
{
return READER_PAGES.children[pageNumber - 1].naturalWidth;
}
function readerFrameRatio()
{
return READER_CONTENT_FRAME.clientWidth / READER_CONTENT_FRAME.clientHeight;
}
function pageMaxHeight()
{
let maxHeight = 0;
for (let i = 0; i < READER_PAGES.children.length; i += 1)
{
if(READER_PAGES.children[i].naturalHeight > maxHeight)
{
maxHeight = READER_PAGES.children[i].naturalHeight;
}
}
return maxHeight;
}
function pageVerticalOffset(pageNumber)
{
return ( pageMaxHeight() - pageOriginalHeight(pageNumber) ) / 2;
}
function previousPagesWidth(pageNumber)
{
// The width of all previous pages relative to the provided index
let totalWidth = 0;
for (let idx = 0; idx < pageNumber - 1; idx += 1)
{
totalWidth += READER_PAGES.children[idx].naturalWidth;
}
return totalWidth;
}
// ========= // =========
// ACTIONS // ACTIONS
// ========= // =========
function initReader() function updateFocusByWidth(width)
{ {
VERSION_DISPLAY.innerText = VERSION_DISPLAY.innerText.replace("Unknown version", MELPOMENE_VERSION); FOCUS_OVERLAY_WIDTH.style.width = `${width / READER_CONTENT_FRAME.clientWidth * 100}%`;
FOCUS_OVERLAY_HEIGHT.style.height = "100%";
loadZoomsFromImgTagsIfRequired();
moveReaderDisplayToZoom(0);
// Smoothly show pictures when they intersect with the viewport
const visibilityObserver = new IntersectionObserver(
(entries, _observer) =>
{
entries.forEach((entry) =>
{
if (entry.isIntersecting)
{
entry.target.style.opacity = 1;
entry.target.style.visibility = "visible";
} }
else function updateFocusByHeight(height)
{ {
entry.target.style.opacity = 0; FOCUS_OVERLAY_WIDTH.style.width = "100%";
entry.target.style.visibility = "hidden"; FOCUS_OVERLAY_HEIGHT.style.height = `${height / READER_CONTENT_FRAME.clientHeight * 100}%`;
} }
});
},
{ root: READER_CONTENT_FRAME, rootMargin: "-10px" }
);
for (let i = 0; i < READER_PAGES.children.length; i += 1)
{
const img = READER_PAGES.children[i];
visibilityObserver.observe(img);
PROGRESS_BAR_PAGES.appendChild(document.createElement("div"));
}
READER_PAGES.style.display = "flex";
setTimeout(
() => { READER_PAGES.hidden = false },
"300"
);
setTimeout(
() =>
{
HELP_CONTROLS.style.opacity = null;
HELP_CONTROLS.style.transform = null;
},
DELAY_BEFORE_HIDDING_CONTROLS
);
}
function moveReaderDisplayToArea(pageNumber, oWidth, oHeight, oPosx, oPosy) function moveReaderDisplayToArea(pageNumber, oWidth, oHeight, oPosx, oPosy)
{ {
@ -400,18 +357,6 @@ function moveReaderDisplayToZoom(index)
CURRENT_ZOOM = index; CURRENT_ZOOM = index;
} }
function updateFocusByWidth(width)
{
FOCUS_OVERLAY_WIDTH.style.width = `${width / READER_CONTENT_FRAME.clientWidth * 100}%`;
FOCUS_OVERLAY_HEIGHT.style.height = "100%";
}
function updateFocusByHeight(height)
{
FOCUS_OVERLAY_WIDTH.style.width = "100%";
FOCUS_OVERLAY_HEIGHT.style.height = `${height / READER_CONTENT_FRAME.clientHeight * 100}%`;
}
function toggleViewMode() function toggleViewMode()
{ {
if (IS_PAGE_MODE) if (IS_PAGE_MODE)
@ -474,6 +419,60 @@ function moveReader(toNext)
} }
} }
function initReader()
{
VERSION_DISPLAY.innerText = VERSION_DISPLAY.innerText.replace("Unknown version", MELPOMENE_VERSION);
loadZoomsFromImgTagsIfRequired();
moveReaderDisplayToZoom(0);
// Smoothly show pictures when they intersect with the viewport
const visibilityObserver = new IntersectionObserver(
(entries, _observer) =>
{
entries.forEach((entry) =>
{
if (entry.isIntersecting)
{
entry.target.style.opacity = 1;
entry.target.style.visibility = "visible";
}
else
{
entry.target.style.opacity = 0;
entry.target.style.visibility = "hidden";
}
});
},
{ root: READER_CONTENT_FRAME, rootMargin: "-10px" }
);
for (let i = 0; i < READER_PAGES.children.length; i += 1)
{
const img = READER_PAGES.children[i];
visibilityObserver.observe(img);
PROGRESS_BAR_PAGES.appendChild(document.createElement("div"));
}
READER_PAGES.style.display = "flex";
setTimeout(
() => { READER_PAGES.hidden = false },
"300"
);
setTimeout(
() =>
{
HELP_CONTROLS.style.opacity = null;
HELP_CONTROLS.style.transform = null;
},
DELAY_BEFORE_HIDDING_CONTROLS
);
}
// ============= // =============
// CALLBACKS // CALLBACKS