Replaces scrollIntoView
This commit is contained in:
parent
e0796cef28
commit
2531515f15
@ -33,6 +33,17 @@ function getFileName(url) {
|
|||||||
return url.substring(url.lastIndexOf('/', end) + 1, end);
|
return url.substring(url.lastIndexOf('/', end) + 1, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function scrollIntoView(element, spot) {
|
||||||
|
var parent = element.offsetParent, offsetY = element.offsetTop;
|
||||||
|
while (parent.clientHeight == parent.scrollHeight) {
|
||||||
|
offsetY += parent.offsetTop;
|
||||||
|
parent = parent.offsetParent;
|
||||||
|
}
|
||||||
|
if (spot)
|
||||||
|
offsetY += spot.top;
|
||||||
|
parent.scrollTop = offsetY;
|
||||||
|
}
|
||||||
|
|
||||||
var Cache = function cacheCache(size) {
|
var Cache = function cacheCache(size) {
|
||||||
var data = [];
|
var data = [];
|
||||||
this.push = function cachePush(view) {
|
this.push = function cachePush(view) {
|
||||||
@ -1309,7 +1320,7 @@ var PageView = function pageView(container, pdfPage, id, scale,
|
|||||||
|
|
||||||
this.scrollIntoView = function pageViewScrollIntoView(dest) {
|
this.scrollIntoView = function pageViewScrollIntoView(dest) {
|
||||||
if (!dest) {
|
if (!dest) {
|
||||||
div.scrollIntoView(true);
|
scrollIntoView(div);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1368,16 +1379,7 @@ var PageView = function pageView(container, pdfPage, id, scale,
|
|||||||
var width = Math.abs(boundingRect[0][0] - boundingRect[1][0]);
|
var width = Math.abs(boundingRect[0][0] - boundingRect[1][0]);
|
||||||
var height = Math.abs(boundingRect[0][1] - boundingRect[1][1]);
|
var height = Math.abs(boundingRect[0][1] - boundingRect[1][1]);
|
||||||
|
|
||||||
// using temporary div to scroll it into view
|
scrollIntoView(div, {left: x, top: y, width: width, height: height});
|
||||||
var tempDiv = document.createElement('div');
|
|
||||||
tempDiv.style.position = 'absolute';
|
|
||||||
tempDiv.style.left = Math.floor(x) + 'px';
|
|
||||||
tempDiv.style.top = Math.floor(y) + 'px';
|
|
||||||
tempDiv.style.width = Math.ceil(width) + 'px';
|
|
||||||
tempDiv.style.height = Math.ceil(height) + 'px';
|
|
||||||
div.appendChild(tempDiv);
|
|
||||||
tempDiv.scrollIntoView(true);
|
|
||||||
div.removeChild(tempDiv);
|
|
||||||
}, 0);
|
}, 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2078,7 +2080,7 @@ window.addEventListener('pagechange', function pagechange(evt) {
|
|||||||
var last = numVisibleThumbs > 1 ?
|
var last = numVisibleThumbs > 1 ?
|
||||||
visibleThumbs.last.id : first;
|
visibleThumbs.last.id : first;
|
||||||
if (page <= first || page >= last)
|
if (page <= first || page >= last)
|
||||||
thumbnail.scrollIntoView();
|
scrollIntoView(thumbnail);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user