Fix remember scroll and get visible pages.
This commit is contained in:
parent
aed05b580b
commit
8daddd1015
@ -670,9 +670,10 @@ var PDFView = {
|
|||||||
getVisiblePages: function pdfViewGetVisiblePages() {
|
getVisiblePages: function pdfViewGetVisiblePages() {
|
||||||
var pages = this.pages;
|
var pages = this.pages;
|
||||||
var kBottomMargin = 10;
|
var kBottomMargin = 10;
|
||||||
|
var kTopPadding = 30;
|
||||||
var visiblePages = [];
|
var visiblePages = [];
|
||||||
|
|
||||||
var currentHeight = kBottomMargin;
|
var currentHeight = kTopPadding + kBottomMargin;
|
||||||
var container = this.container;
|
var container = this.container;
|
||||||
var containerTop = container.scrollTop;
|
var containerTop = container.scrollTop;
|
||||||
for (var i = 1; i <= pages.length; ++i) {
|
for (var i = 1; i <= pages.length; ++i) {
|
||||||
@ -689,7 +690,7 @@ var PDFView = {
|
|||||||
var singlePage = pages[i - 1];
|
var singlePage = pages[i - 1];
|
||||||
visiblePages.push({ id: singlePage.id, y: currentHeight,
|
visiblePages.push({ id: singlePage.id, y: currentHeight,
|
||||||
view: singlePage });
|
view: singlePage });
|
||||||
currentHeight += singlePage.height * singlePage.scale + kBottomMargin;
|
currentHeight += page.height + kBottomMargin;
|
||||||
}
|
}
|
||||||
return visiblePages;
|
return visiblePages;
|
||||||
},
|
},
|
||||||
@ -918,9 +919,9 @@ var PageView = function pageView(container, pdfPage, id, scale,
|
|||||||
y = dest[3];
|
y = dest[3];
|
||||||
width = dest[4] - x;
|
width = dest[4] - x;
|
||||||
height = dest[5] - y;
|
height = dest[5] - y;
|
||||||
widthScale = (window.innerWidth - kScrollbarPadding) /
|
widthScale = (this.container.clientWidth - kScrollbarPadding) /
|
||||||
width / kCssUnits;
|
width / kCssUnits;
|
||||||
heightScale = (window.innerHeight - kScrollbarPadding) /
|
heightScale = (this.container.clientHeight - kScrollbarPadding) /
|
||||||
height / kCssUnits;
|
height / kCssUnits;
|
||||||
scale = Math.min(widthScale, heightScale);
|
scale = Math.min(widthScale, heightScale);
|
||||||
break;
|
break;
|
||||||
@ -928,16 +929,15 @@ var PageView = function pageView(container, pdfPage, id, scale,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boundingRect = [
|
|
||||||
this.viewport.convertToViewportPoint(x, y),
|
|
||||||
this.viewport.convertToViewportPoint(x + width, y + height)
|
|
||||||
];
|
|
||||||
|
|
||||||
if (scale && scale !== PDFView.currentScale)
|
if (scale && scale !== PDFView.currentScale)
|
||||||
PDFView.parseScale(scale, true);
|
PDFView.parseScale(scale, true);
|
||||||
else if (PDFView.currentScale === kUnknownScale)
|
else if (PDFView.currentScale === kUnknownScale)
|
||||||
PDFView.parseScale(kDefaultScale, true);
|
PDFView.parseScale(kDefaultScale, true);
|
||||||
|
|
||||||
|
var boundingRect = [
|
||||||
|
this.viewport.convertToViewportPoint(x, y),
|
||||||
|
this.viewport.convertToViewportPoint(x + width, y + height)
|
||||||
|
];
|
||||||
setTimeout(function pageViewScrollIntoViewRelayout() {
|
setTimeout(function pageViewScrollIntoViewRelayout() {
|
||||||
// letting page to re-layout before scrolling
|
// letting page to re-layout before scrolling
|
||||||
var scale = PDFView.currentScale;
|
var scale = PDFView.currentScale;
|
||||||
@ -1420,13 +1420,12 @@ function updateViewarea() {
|
|||||||
var normalizedScaleValue = currentScaleValue == currentScale ?
|
var normalizedScaleValue = currentScaleValue == currentScale ?
|
||||||
currentScale * 100 : currentScaleValue;
|
currentScale * 100 : currentScaleValue;
|
||||||
|
|
||||||
var kViewerTopMargin = 52;
|
|
||||||
var pageNumber = firstPage.id;
|
var pageNumber = firstPage.id;
|
||||||
var pdfOpenParams = '#page=' + pageNumber;
|
var pdfOpenParams = '#page=' + pageNumber;
|
||||||
pdfOpenParams += '&zoom=' + normalizedScaleValue;
|
pdfOpenParams += '&zoom=' + normalizedScaleValue;
|
||||||
var currentPage = PDFView.pages[pageNumber - 1];
|
var currentPage = PDFView.pages[pageNumber - 1];
|
||||||
var topLeft = currentPage.getPagePoint(window.pageXOffset,
|
var topLeft = currentPage.getPagePoint(PDFView.container.scrollLeft,
|
||||||
window.pageYOffset - firstPage.y - kViewerTopMargin);
|
(PDFView.container.scrollTop - firstPage.y));
|
||||||
pdfOpenParams += ',' + Math.round(topLeft[0]) + ',' + Math.round(topLeft[1]);
|
pdfOpenParams += ',' + Math.round(topLeft[0]) + ',' + Math.round(topLeft[1]);
|
||||||
|
|
||||||
var store = PDFView.store;
|
var store = PDFView.store;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user