Я расширил просмотрщик pdf.js
, чтобы я мог "вставить .svgs
в .pdf
".
Это означает, что я просто вставил дополнительные imageWrapper
на каждую страницу div
и добавил .svgs
как objects
внутри. Результат выглядит так, как будто .svgs
находятся внутри .pdf
, хотя, конечно, они просто являются частью зрителя.
Для тех, кто не знаком: здесь вы можете найти демо зрителя; просто просмотрите .pdf-страницу, и вы поймете мое объяснение.
Однако, если я просто прокручиваю вверх / вниз, зритель довольно не отвечает и запаздывает, когда .svgs
рядом с окном просмотра. Может быть уместно добавить, что это поведение не отображается, если я вставляю видео или изображения. Кроме того, .svgs
довольно большие (в 3 раза больше 3 МБ), но если у меня они есть на простом html
-сайте с некоторым слепым текстом, прокрутка вообще не проблема.
Для меня это скорее похоже, что это какая-то проблема раскладки . Тем не менее мне не удалось отследить причину (ы):
Инструмент производительности из Chrome указал мне на файл ui_utils.js
и, в частности, на этот фрагмент кода:
function watchScroll(viewAreaElement, callback) {
let debounceScroll = function(evt) {
if (rAF) {
return;
}
// schedule an invocation of scroll for next animation frame.
rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {
rAF = null;
let currentX = viewAreaElement.scrollLeft;
let lastX = state.lastX;
if (currentX !== lastX) {
state.right = currentX > lastX;
}
state.lastX = currentX;
let currentY = viewAreaElement.scrollTop;
let lastY = state.lastY;
if (currentY !== lastY) {
state.down = currentY > lastY;
}
state.lastY = currentY;
callback(state);
});
};
let state = {
right: true,
down: true,
lastX: viewAreaElement.scrollLeft,
lastY: viewAreaElement.scrollTop,
_eventHandler: debounceScroll,
};
let rAF = null;
viewAreaElement.addEventListener('scroll', debounceScroll, true);
return state;
}
Это имело для меня смысл, поскольку такие команды, как scrollLeft
запускают перекомпоновку, но комментирование детали с помощью currentX
и currentY
не изменило поведение заметно.
Я был бы признателен за любые советы по решению этой проблемы и особенно некоторые объяснения о поведение прокрутки pdf.js
очень много.
РЕДАКТИРОВАТЬ : Тем временем я пришел к выводу, что это может быть просто проблемой сбора мусора. Может быть, сокрытие .svgs
помогает.