I used the panzoom in an older vue2 project.
Now I tested the component in a simple vue3 setup and got "Unhandled error during execution of mounted hook at at "
and "Cannot create panzoom for the current type of dom element"
where's the problem?
my package.json
{ "name": "image-zoom-test", "version": "0.1.0", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint" }, "dependencies": { "core-js": "^3.6.5", "vue": "^3.0.0", "vue-panzoom": "^1.1.6" }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.15", "@vue/cli-plugin-eslint": "~4.5.15", "@vue/cli-service": "~4.5.15", "@vue/compiler-sfc": "^3.0.0", "babel-eslint": "^10.1.0", "eslint": "^6.7.2", "eslint-plugin-vue": "^7.0.0" }, "eslintConfig": { "root": true, "env": { "node": true }, "extends": [ "plugin:vue/vue3-essential", "eslint:recommended" ], "parserOptions": { "parser": "babel-eslint" }, "rules": {} }, "browserslist": [ "> 1%", "last 2 versions", "not dead" ] }
main.js
import { createApp } from 'vue' import App from './App.vue' const app = createApp(App) // import vue-panzoom import panZoom from 'vue-panzoom' // install plugin app.use(panZoom); // createApp(App).mount('#app') app.mount('#app') and the vue file
<template> <!-- <img alt="Vue logo" src="./assets/logo.png"> --> <!-- <HelloWorld msg="Welcome to Your Vue.js App"/> --> <!-- apply to an image --> <panZoom> <img src="https://picsum.photos/300"> </panZoom> <!-- apply to regular dom elements --> <panZoom> <p>You can zoom me</p> </panZoom> <!-- apply to svg --> <panZoom selector="#g1"> <svg height="210" width="400"> <g id="g1"> <path d="M150 0 L75 200 L225 200 Z" /> </g> </svg> </panZoom> </template> <script> export default { name: 'App', components: { } } </script> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-top: 0px; margin-left:0px; background-color: red; position : fixed; top: 0px; left:0px; width: 1920px; height: 1080px; } </style>
vue-panzoomdoesn't support Vue 3.