From c593c092c9bca0a838197ec0a4fc24c6b2c82d88 Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Wed, 25 Apr 2012 18:39:30 -0700 Subject: [PATCH] Scroll thumbnails will full pages. --- web/viewer.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index 06b20c693..f584c5d1f 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -696,7 +696,7 @@ var PDFView = { getVisibleThumbs: function pdfViewGetVisibleThumbs() { var thumbs = this.thumbnails; - var kBottomMargin = 5; + var kBottomMargin = 15; var visibleThumbs = []; var view = document.getElementById('thumbnailView'); @@ -1547,8 +1547,20 @@ window.addEventListener('pagechange', function pagechange(evt) { var selected = document.querySelector('.thumbnail.selected'); if (selected) selected.classList.remove('selected'); - document.getElementById('thumbnailContainer' + page) - .classList.add('selected'); + var thumbnail = document.getElementById('thumbnailContainer' + page); + thumbnail.classList.add('selected'); + var visibleThumbs = PDFView.getVisibleThumbs(); + var numVisibleThumbs = visibleThumbs.length; + // If the thumbnail isn't currently visible scroll it into view. + if (numVisibleThumbs > 0) { + var first = visibleThumbs[0].id; + // Account for only one thumbnail being visible. + var last = numVisibleThumbs > 1 ? + visibleThumbs[numVisibleThumbs - 1].id : first; + if (page <= first || page >= last) + thumbnail.scrollIntoView(); + } + } document.getElementById('previous').disabled = (page <= 1); document.getElementById('next').disabled = (page >= PDFView.pages.length);