fix(ImagePreview): incorrect move range in some cases (#7142)

* fix(ImagePreview): incorrect move range in some cases

* chore: remove inBrowser

* test(ImagePreview): fix failed case
This commit is contained in:
neverland
2020-09-09 17:59:59 +08:00
committed by GitHub
parent 5e6734f31c
commit 3dddeaa7a3
3 changed files with 22 additions and 31 deletions
+11 -14
View File
@@ -27,8 +27,8 @@ export default {
active: Number,
minZoom: [Number, String],
maxZoom: [Number, String],
windowWidth: Number,
windowHeight: Number,
rootWidth: Number,
rootHeight: Number,
},
data() {
@@ -46,9 +46,9 @@ export default {
computed: {
vertical() {
const { windowWidth, windowHeight } = this;
const windowRatio = windowHeight / windowWidth;
return this.imageRatio > windowRatio;
const { rootWidth, rootHeight } = this;
const rootRatio = rootHeight / rootWidth;
return this.imageRatio > rootRatio;
},
imageStyle() {
@@ -69,10 +69,10 @@ export default {
maxMoveX() {
if (this.imageRatio) {
const displayWidth = this.vertical
? this.windowHeight / this.imageRatio
: this.windowWidth;
? this.rootHeight / this.imageRatio
: this.rootWidth;
return Math.max(0, (this.scale * displayWidth - this.windowWidth) / 2);
return Math.max(0, (this.scale * displayWidth - this.rootWidth) / 2);
}
return 0;
@@ -81,13 +81,10 @@ export default {
maxMoveY() {
if (this.imageRatio) {
const displayHeight = this.vertical
? this.windowHeight
: this.windowWidth * this.imageRatio;
? this.rootHeight
: this.rootWidth * this.imageRatio;
return Math.max(
0,
(this.scale * displayHeight - this.windowHeight) / 2
);
return Math.max(0, (this.scale * displayHeight - this.rootHeight) / 2);
}
return 0;