feat: dynamic zoom limit on previewer
parent
87f1881b42
commit
e410272e6b
|
@ -29,14 +29,6 @@ export default {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: () => 200,
|
default: () => 200,
|
||||||
},
|
},
|
||||||
maxScale: {
|
|
||||||
type: Number,
|
|
||||||
default: () => 4,
|
|
||||||
},
|
|
||||||
minScale: {
|
|
||||||
type: Number,
|
|
||||||
default: () => 0.25,
|
|
||||||
},
|
|
||||||
classList: {
|
classList: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => [],
|
default: () => [],
|
||||||
|
@ -45,10 +37,6 @@ export default {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: () => 0.25,
|
default: () => 0.25,
|
||||||
},
|
},
|
||||||
autofill: {
|
|
||||||
type: Boolean,
|
|
||||||
default: () => false,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -64,6 +52,8 @@ export default {
|
||||||
center: { x: 0, y: 0 },
|
center: { x: 0, y: 0 },
|
||||||
relative: { x: 0, y: 0 },
|
relative: { x: 0, y: 0 },
|
||||||
},
|
},
|
||||||
|
maxScale: 4,
|
||||||
|
minScale: 0.25,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -126,6 +116,21 @@ export default {
|
||||||
img.classList.add("image-ex-img-ready");
|
img.classList.add("image-ex-img-ready");
|
||||||
|
|
||||||
document.addEventListener("mouseup", this.onMouseUp);
|
document.addEventListener("mouseup", this.onMouseUp);
|
||||||
|
|
||||||
|
let realSize = img.naturalWidth;
|
||||||
|
let displaySize = img.offsetWidth;
|
||||||
|
|
||||||
|
// Image is in portrait orientation
|
||||||
|
if (img.naturalHeight > img.naturalWidth) {
|
||||||
|
realSize = img.naturalHeight;
|
||||||
|
displaySize = img.offsetHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scale needed to display the image on full size
|
||||||
|
const fullScale = realSize / displaySize;
|
||||||
|
|
||||||
|
// Full size plus additional zoom
|
||||||
|
this.maxScale = fullScale + 4;
|
||||||
},
|
},
|
||||||
onMouseUp() {
|
onMouseUp() {
|
||||||
this.inDrag = false;
|
this.inDrag = false;
|
||||||
|
|
Loading…
Reference in New Issue