Skip to content

Commit 882ed79

Browse files
committed
feat: 增加 rotationchanging 事件
1 parent e974a11 commit 882ed79

File tree

1 file changed

+40
-29
lines changed

1 file changed

+40
-29
lines changed

src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -127,35 +127,7 @@ const addEventListener = (el, pdfViewer, eventBus, invoke, options) => {
127127

128128
eventBus.on("pagesloaded", async e => {
129129
if (options.enableThumbnails) {
130-
const thumbnailsContainer = el.querySelector(".bb-view-thumbnails");
131-
pdfViewer.getPagesOverview().map(async (p, i) => {
132-
const item = document.createElement("div");
133-
item.classList.add("bb-view-thumbnail-item");
134-
if (pdfViewer.currentPageNumber === i + 1) {
135-
item.classList.add("active");
136-
}
137-
item.setAttribute("data-bb-page", `${i + 1}`);
138-
thumbnailsContainer.appendChild(item);
139-
140-
const page = await pdfViewer.pdfDocument.getPage(i + 1);
141-
const canvas = await makeThumb(page);
142-
const img = document.createElement("img");
143-
img.src = canvas.toDataURL();
144-
item.appendChild(img);
145-
});
146-
147-
EventHandler.on(thumbnailsContainer, "click", ".bb-view-thumbnail-item", e => {
148-
const active = thumbnailsContainer.querySelector('.active');
149-
if (active) {
150-
active.classList.remove('active');
151-
}
152-
153-
const item = e.delegateTarget;
154-
item.classList.add("active");
155-
156-
const index = parseInt(item.getAttribute("data-bb-page")) || 1;
157-
pdfViewer.currentPageNumber = index;
158-
})
130+
resetThumbnailsView(el, pdfViewer);
159131
}
160132

161133
if (options.triggerPagesLoaded === true) {
@@ -232,6 +204,45 @@ const addEventListener = (el, pdfViewer, eventBus, invoke, options) => {
232204
thumbnailsEl.classList.toggle("show");
233205
});
234206
}
207+
208+
eventBus.on("rotationchanging", evt => {
209+
const thumbnailsContainer = el.querySelector(".bb-view-thumbnails");
210+
if (thumbnailsContainer) {
211+
thumbnailsContainer.style.setProperty('--thumb-rotate', `${evt.pagesRotation}deg`);
212+
}
213+
})
214+
}
215+
216+
const resetThumbnailsView = (el, pdfViewer) => {
217+
const thumbnailsContainer = el.querySelector(".bb-view-thumbnails");
218+
pdfViewer.getPagesOverview().map(async (p, i) => {
219+
const item = document.createElement("div");
220+
item.classList.add("bb-view-thumbnail-item");
221+
if (pdfViewer.currentPageNumber === i + 1) {
222+
item.classList.add("active");
223+
}
224+
item.setAttribute("data-bb-page", `${i + 1}`);
225+
thumbnailsContainer.appendChild(item);
226+
227+
const page = await pdfViewer.pdfDocument.getPage(i + 1);
228+
const canvas = await makeThumb(page);
229+
const img = document.createElement("img");
230+
img.src = canvas.toDataURL();
231+
item.appendChild(img);
232+
});
233+
234+
EventHandler.on(thumbnailsContainer, "click", ".bb-view-thumbnail-item", e => {
235+
const active = thumbnailsContainer.querySelector('.active');
236+
if (active) {
237+
active.classList.remove('active');
238+
}
239+
240+
const item = e.delegateTarget;
241+
item.classList.add("active");
242+
243+
const index = parseInt(item.getAttribute("data-bb-page")) || 1;
244+
pdfViewer.currentPageNumber = index;
245+
});
235246
}
236247

237248
const updateScale = (pdfViewer, button, rate) => {

0 commit comments

Comments
 (0)