Skip to content

Commit 517f96d

Browse files
committed
修复旋转屏幕时宽高比例问题
1 parent e61f3ab commit 517f96d

File tree

3 files changed

+95
-21
lines changed

3 files changed

+95
-21
lines changed

example/pdfh5-vue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"build": "node build/build.js"
1111
},
1212
"dependencies": {
13-
"pdfh5": "^1.2.11",
13+
"pdfh5": "^1.2.12",
1414
"vue": "^2.5.2"
1515
},
1616
"devDependencies": {

example/test/js/pdfh5.js

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
; (function (g, fn) {
2-
var version = "1.2.11";
3-
console.log("The latest version and API of pdfh5 from: https://github.com/gjTool/pdfh5 (pdfh5.js: "+version+")")
2+
var version = "1.2.12";
3+
console.log("The latest version and API of pdfh5 from: https://github.com/gjTool/pdfh5 (pdfh5.js: " + version + ")")
44
if (typeof require !== 'undefined') {
55
if (g.$ === undefined) {
66
g.$ = require('./jquery-1.11.3.min.js');
@@ -11,14 +11,14 @@
1111
var pdfjsLib = g.pdfjsLib, $ = g.$, pdfjsWorker = g.pdfjsWorker;
1212
if (typeof define === 'function' && define.amd) {
1313
define(function () {
14-
return fn(g, pdfjsWorker, pdfjsLib, $,version)
14+
return fn(g, pdfjsWorker, pdfjsLib, $, version)
1515
})
1616
} else if (typeof module !== 'undefined' && module.exports) {
17-
module.exports = fn(g, pdfjsWorker, pdfjsLib, $,version)
17+
module.exports = fn(g, pdfjsWorker, pdfjsLib, $, version)
1818
} else {
19-
g.Pdfh5 = fn(g, pdfjsWorker, pdfjsLib, $,version)
19+
g.Pdfh5 = fn(g, pdfjsWorker, pdfjsLib, $, version)
2020
}
21-
})(typeof window !== 'undefined' ? window : this, function (g, pdfjsWorker, pdfjsLib, $,version) {
21+
})(typeof window !== 'undefined' ? window : this, function (g, pdfjsWorker, pdfjsLib, $, version) {
2222
'use strict';
2323
var definePinchZoom = function ($) {
2424
var PinchZoom = function (el, options, viewerContainer) {
@@ -631,10 +631,12 @@
631631
this.pinchZoom = null;
632632
this.timer = null;
633633
this.docWidth = document.documentElement.clientWidth;
634+
this.winWidth = $(window).width();
634635
this.eventType = {};
635636
this.cache = {};
636637
this.cacheNum = 1;
637638
this.options = options;
639+
this.resizeEvent = false;
638640
this.init(options);
639641
};
640642
Pdfh5.prototype = {
@@ -663,6 +665,7 @@
663665
options.fullscreen = options.fullscreen === false ? false : true;
664666
options.lazy = options.lazy === true ? true : false;
665667
options.renderType = options.renderType === "canvas" ? "canvas" : "svg";
668+
options.resize = options.resize === false ? false : true;
666669
if (options.renderType === "canvas") {
667670
options.scale = 2;
668671
}
@@ -750,10 +753,10 @@
750753
}
751754
})
752755
}
753-
if(scrollTop+ self.container.height() >=self.viewer[0].offsetHeight){
756+
if (scrollTop + self.container.height() >= self.viewer[0].offsetHeight) {
754757
self.pageNow.text(self.totalNum)
755758
}
756-
if(scrollTop === 0){
759+
if (scrollTop === 0) {
757760
self.pageNow.text(1)
758761
}
759762
self.timer = setTimeout(function () {
@@ -1017,13 +1020,16 @@
10171020
$(container).css({
10181021
'max-width': viewport.width,
10191022
"max-height": viewport.height,
1020-
"min-height":viewport.height * scale + 'px'
1021-
})
1023+
"min-height": viewport.height * scale + 'px'
1024+
}).attr("data-height", viewport.height * scale)
10221025
self.viewer[0].appendChild(container);
10231026
self.cache[pageNum + ""].container = container;
10241027
self.cache[pageNum + ""].scaledViewport = scaledViewport;
10251028
var sum = 0, containerH = self.container.height();
10261029
self.pages = self.viewerContainer.find('.pageContainer');
1030+
if(options.resize){
1031+
self.resize()
1032+
}
10271033
if (self.pages && options.lazy) {
10281034
self.pages.each(function (index, obj) {
10291035
var top = obj.offsetTop;
@@ -1043,6 +1049,7 @@
10431049
});
10441050
}.bind(null, i));
10451051
}
1052+
10461053
}).catch(function (err) {
10471054
self.loading.hide();
10481055
var time = new Date().getTime();
@@ -1203,6 +1210,36 @@
12031210
}
12041211
}
12051212
},
1213+
resize: function () {
1214+
var self = this;
1215+
var timer;
1216+
if (self.resizeEvent) {
1217+
return
1218+
}
1219+
self.resizeEvent = true;
1220+
if (self.pages) {
1221+
var height = self.pages.attr("data-height");
1222+
$(window).on("resize", function () {
1223+
var winWidth = $(window).width();
1224+
if (self.winWidth === winWidth) {
1225+
self.pages.css({
1226+
"min-height": height + 'px'
1227+
})
1228+
} else {
1229+
self.pages.css({
1230+
"min-height": 'auto'
1231+
})
1232+
clearTimeout(timer)
1233+
timer = setTimeout(function () {
1234+
var h = self.pages.height();
1235+
self.pages.css({
1236+
"min-height": h + 'px'
1237+
})
1238+
}, 0)
1239+
}
1240+
})
1241+
}
1242+
},
12061243
show: function (callback) {
12071244
this.container.show();
12081245
callback && callback.call(this)

js/pdfh5.js

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
; (function (g, fn) {
2-
var version = "1.2.11";
3-
console.log("The latest version and API of pdfh5 from: https://github.com/gjTool/pdfh5 (pdfh5.js: "+version+")")
2+
var version = "1.2.12";
3+
console.log("The latest version and API of pdfh5 from: https://github.com/gjTool/pdfh5 (pdfh5.js: " + version + ")")
44
if (typeof require !== 'undefined') {
55
if (g.$ === undefined) {
66
g.$ = require('./jquery-1.11.3.min.js');
@@ -11,14 +11,14 @@
1111
var pdfjsLib = g.pdfjsLib, $ = g.$, pdfjsWorker = g.pdfjsWorker;
1212
if (typeof define === 'function' && define.amd) {
1313
define(function () {
14-
return fn(g, pdfjsWorker, pdfjsLib, $,version)
14+
return fn(g, pdfjsWorker, pdfjsLib, $, version)
1515
})
1616
} else if (typeof module !== 'undefined' && module.exports) {
17-
module.exports = fn(g, pdfjsWorker, pdfjsLib, $,version)
17+
module.exports = fn(g, pdfjsWorker, pdfjsLib, $, version)
1818
} else {
19-
g.Pdfh5 = fn(g, pdfjsWorker, pdfjsLib, $,version)
19+
g.Pdfh5 = fn(g, pdfjsWorker, pdfjsLib, $, version)
2020
}
21-
})(typeof window !== 'undefined' ? window : this, function (g, pdfjsWorker, pdfjsLib, $,version) {
21+
})(typeof window !== 'undefined' ? window : this, function (g, pdfjsWorker, pdfjsLib, $, version) {
2222
'use strict';
2323
var definePinchZoom = function ($) {
2424
var PinchZoom = function (el, options, viewerContainer) {
@@ -631,10 +631,12 @@
631631
this.pinchZoom = null;
632632
this.timer = null;
633633
this.docWidth = document.documentElement.clientWidth;
634+
this.winWidth = $(window).width();
634635
this.eventType = {};
635636
this.cache = {};
636637
this.cacheNum = 1;
637638
this.options = options;
639+
this.resizeEvent = false;
638640
this.init(options);
639641
};
640642
Pdfh5.prototype = {
@@ -663,6 +665,7 @@
663665
options.fullscreen = options.fullscreen === false ? false : true;
664666
options.lazy = options.lazy === true ? true : false;
665667
options.renderType = options.renderType === "canvas" ? "canvas" : "svg";
668+
options.resize = options.resize === false ? false : true;
666669
if (options.renderType === "canvas") {
667670
options.scale = 2;
668671
}
@@ -750,10 +753,10 @@
750753
}
751754
})
752755
}
753-
if(scrollTop+ self.container.height() >=self.viewer[0].offsetHeight){
756+
if (scrollTop + self.container.height() >= self.viewer[0].offsetHeight) {
754757
self.pageNow.text(self.totalNum)
755758
}
756-
if(scrollTop === 0){
759+
if (scrollTop === 0) {
757760
self.pageNow.text(1)
758761
}
759762
self.timer = setTimeout(function () {
@@ -1017,13 +1020,16 @@
10171020
$(container).css({
10181021
'max-width': viewport.width,
10191022
"max-height": viewport.height,
1020-
"min-height":viewport.height * scale + 'px'
1021-
})
1023+
"min-height": viewport.height * scale + 'px'
1024+
}).attr("data-height", viewport.height * scale)
10221025
self.viewer[0].appendChild(container);
10231026
self.cache[pageNum + ""].container = container;
10241027
self.cache[pageNum + ""].scaledViewport = scaledViewport;
10251028
var sum = 0, containerH = self.container.height();
10261029
self.pages = self.viewerContainer.find('.pageContainer');
1030+
if(options.resize){
1031+
self.resize()
1032+
}
10271033
if (self.pages && options.lazy) {
10281034
self.pages.each(function (index, obj) {
10291035
var top = obj.offsetTop;
@@ -1043,6 +1049,7 @@
10431049
});
10441050
}.bind(null, i));
10451051
}
1052+
10461053
}).catch(function (err) {
10471054
self.loading.hide();
10481055
var time = new Date().getTime();
@@ -1203,6 +1210,36 @@
12031210
}
12041211
}
12051212
},
1213+
resize: function () {
1214+
var self = this;
1215+
var timer;
1216+
if (self.resizeEvent) {
1217+
return
1218+
}
1219+
self.resizeEvent = true;
1220+
if (self.pages) {
1221+
var height = self.pages.attr("data-height");
1222+
$(window).on("resize", function () {
1223+
var winWidth = $(window).width();
1224+
if (self.winWidth === winWidth) {
1225+
self.pages.css({
1226+
"min-height": height + 'px'
1227+
})
1228+
} else {
1229+
self.pages.css({
1230+
"min-height": 'auto'
1231+
})
1232+
clearTimeout(timer)
1233+
timer = setTimeout(function () {
1234+
var h = self.pages.height();
1235+
self.pages.css({
1236+
"min-height": h + 'px'
1237+
})
1238+
}, 0)
1239+
}
1240+
})
1241+
}
1242+
},
12061243
show: function (callback) {
12071244
this.container.show();
12081245
callback && callback.call(this)

0 commit comments

Comments
 (0)