Skip to content

Commit 086d754

Browse files
bookFlip.load() fixed
Now return pages in order of importance (first page the selected one, then the following, in the end the previous)
1 parent 629f6fe commit 086d754

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

pdf-turn/pdf-turn.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ var bookFlip = {
2121
$(document).on('rotationchanging', () => {bookFlip.rotate()});
2222
$(document).on('scalechanging', () => {bookFlip.resize()});
2323
$(document).on('pagechanging', () => {bookFlip.flip()});
24-
$(document).on('documentloaded', () => {bookFlip.stop()});
25-
24+
2625
$(document).on('scrollmodechanged', () => {
2726
var scroll = PDFViewerApplication.pdfViewer.scrollMode;
2827
if (scroll === 3)bookFlip.start();
@@ -48,6 +47,7 @@ var bookFlip = {
4847
});
4948

5049
$(document).on('documentloaded', () => {
50+
bookFlip.stop();
5151
var scrollMode = PDFViewerApplicationOptions.get('scrollModeOnLoad');
5252
if (scrollMode === -1) {
5353
scrollMode = PDFViewerApplication.store.file.scrollMode;
@@ -214,19 +214,33 @@ var bookFlip = {
214214
},
215215
// load pages near shown page
216216
load: function(views){
217+
if(!this.active)return;
217218
var arr = [];
218219
var page = PDFViewerApplication.page;
219-
var min = (this._spread === 0) ? 2 : (page%2) ? 4 : 3;
220-
var max = (this._spread === 0) ? 1 : (page%2) ? 2 : 3;
221-
for (var i = Math.max(page - min,0), ii = Math.min(page + max, views.length); i < ii; i++) {
220+
var min = Math.max(page - ((this._spread === 0) ? 2 : (page%2) ? 4 : 3), 0);
221+
var pos = Math.max(((this._spread === 0) ? page : page - (page%2)) -1, 0);
222+
var max = Math.min(page + ((this._spread === 0) ? 1 : (page%2) ? 2 : 3), views.length);
223+
224+
for (var i = pos, ii = max; i < ii; i++) {
222225
arr.push({
223226
id: views[i].id,
224-
x: views[i].div.offsetLeft + views[i].div.clientLeft,
225-
y: views[i].div.offsetTop + views[i].div.clientTop,
227+
x: 0,
228+
y: 0,
226229
view: views[i],
227230
percent: 100
228231
});
229232
}
233+
for (var i = min, ii = pos; i < ii; i++) {
234+
arr.push({
235+
id: views[i].id,
236+
x: 0,
237+
y: 0,
238+
view: views[i],
239+
percent: 100
240+
});
241+
}
242+
if(this._spread !== 0 && (page%2) && page !== 1) [arr[0],arr[1]] = [arr[1],arr[0]]
243+
230244
return arr;
231245
},
232246
_spreadType: function(){

0 commit comments

Comments
 (0)