Use pinch-zoom-element for pinch zoom functionality
This commit is contained in:
parent
3648a82f3f
commit
42ef082ff6
8 changed files with 94 additions and 16 deletions
|
|
@ -4,20 +4,29 @@
|
|||
class="media-modal-view"
|
||||
@backdropClicked="hide"
|
||||
>
|
||||
<img
|
||||
v-if="type === 'image'"
|
||||
:class="{ loading }"
|
||||
class="modal-image"
|
||||
:src="currentMedia.url"
|
||||
:alt="currentMedia.description"
|
||||
:title="currentMedia.description"
|
||||
:style="{ transform }"
|
||||
@touchstart.stop.prevent="mediaTouchStart"
|
||||
@touchmove.stop.prevent="mediaTouchMove"
|
||||
@touchend.stop.prevent="mediaTouchEnd"
|
||||
@click="hide"
|
||||
@load="onImageLoaded"
|
||||
>
|
||||
<div class="modal-image-container">
|
||||
<PinchZoom
|
||||
options="pinchZoomOptions"
|
||||
class="modal-image-container-inner"
|
||||
selector=".modal-image"
|
||||
allow-pan-min-scale="1"
|
||||
min-scale="1"
|
||||
reset-to-min-scale-limit="1.2"
|
||||
reach-min-scale-strategy="reset"
|
||||
stop-propagate-handled="stop-propgate-handled"
|
||||
:inner-class="'modal-image-container-inner'"
|
||||
>
|
||||
<img
|
||||
v-if="type === 'image'"
|
||||
:class="{ loading }"
|
||||
class="modal-image"
|
||||
:src="currentMedia.url"
|
||||
:alt="currentMedia.description"
|
||||
:title="currentMedia.description"
|
||||
@load="onImageLoaded"
|
||||
>
|
||||
</PinchZoom>
|
||||
</div>
|
||||
<VideoAttachment
|
||||
v-if="type === 'video'"
|
||||
class="modal-image"
|
||||
|
|
@ -105,6 +114,7 @@
|
|||
opacity: 1;
|
||||
}
|
||||
}
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.media-modal-view {
|
||||
|
|
@ -117,6 +127,40 @@
|
|||
}
|
||||
}
|
||||
|
||||
.modal-image-container {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
max-width: 90%;
|
||||
max-height: 95%;
|
||||
flex-grow: 1;
|
||||
|
||||
&-inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-image {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
box-shadow: 0px 5px 15px 0 rgba(0, 0, 0, 0.5);
|
||||
image-orientation: from-image; // NOTE: only FF supports this
|
||||
animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;
|
||||
}
|
||||
|
||||
//.modal-image {
|
||||
// height: 90vh;
|
||||
// width: 100%;
|
||||
//}
|
||||
|
||||
.description,
|
||||
.counter {
|
||||
/* Hardcoded since background is also hardcoded */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue