]> git.parisson.com Git - pdf.js.git/commitdiff
Scroll thumbnails will full pages.
authorBrendan Dahl <brendan.dahl@gmail.com>
Thu, 26 Apr 2012 01:39:30 +0000 (18:39 -0700)
committerBrendan Dahl <brendan.dahl@gmail.com>
Thu, 26 Apr 2012 01:39:30 +0000 (18:39 -0700)
web/viewer.js

index 06b20c693b33e4c90ce2c56cede537243315b617..f584c5d1f0c8d84ebf6753b36b944a835724dc3b 100644 (file)
@@ -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);