참고 예제 ) https://codesandbox.io/s/v-viewer-click-to-show-forked-5y2ern
toast editor 뷰어에서 이미지를 클릭하여 확대 축소가 가능한 이미지 뷰어 기능을 추가
npm i v-viewer
checkImageWrapper() {
const toastV = this.$el.querySelector('#viewer');
const images = toastV.querySelectorAll('img');
images.forEach((item, idx) => {
const dom = document.createElement('div');
// 이미지 뷰어 처리
dom.addEventListener('click', function () {
EventBus.$emit(EventBus.SHOW_IMAGE_VIEWER, { images, idx });
});
dom.appendChild(item.cloneNode(true));
dom.setAttribute('style', 'cursor: pointer;');
item.parentNode.replaceChild(dom, item);
});
},
<template>
<div>
<img-viewer ref="viewer" />
</div>
</template>
<script>
import EventBus from '@/common/EventBus';
import ImgViewer from '@/components/viewer/ImgViewer';
export default {
name: 'ImgViewerMain',
components: { ImgViewer },
data() {
return {
options: {
url: 'data-source',
},
index: 0,
images: [],
};
},
mounted() {
EventBus.$on(EventBus.SHOW_IMAGE_VIEWER, (data) => {
this.images = [];
data.images.forEach((val) => {
this.images.push({
thumbnail: val.currentSrc,
source: val.currentSrc,
});
});
this.show(data.idx);
});
},
methods: {
show(index) {
this.$refs.viewer.show(this.images, index);
},
},
};
</script>