English | ็ฎไฝไธญๆ
Vue-Hotspot is an image hotspot component for Vue.js.
$ npm install vue-hotspot --save
$ yarn add vue-hotspot
ES Modules with npm (Recommended)
import Vue from 'vue'
import VueHotspot from 'vue-hotspot' // refers to components/VueHotspot.vue in webpack
<template>
<v-hotspot
:init-options="hotspotConfig"
@save-data="saveData"
@after-delete="afterDelete" />
</template>
<script>
import Vue from 'vue'
import VueHotspot from 'vue-hotspot'
export default {
components: {
'v-hotspot': VueHotspot
},
data () {
return {
hotspotConfig: {
image: 'your-image-url.png',
editable: true,
interactivity: 'hover',
data: [
{ Message: 'A prepopulated hotspot', Title: 'Vue Hotspot 1', x: 33.3, y: 58.33 },
{ Message: 'Another prepopulated hotspot', Title: 'Vue Hotspot 2', x: 53.3, y: 78.3 }
],
hotspotColor: '#85ce61',
messageBoxColor: '#409eff',
textColor: '#333',
opacity: 0.9
}
}
},
methods: {
saveData (data) {
// Do something with the list of hotspots
console.log(data)
},
afterDelete () {
// Do something after delete
console.log('Do something after delete ...')
}
}
}
</script>
You can see more examples here.
. โโโ CHANGELOG.md โโโ LICENSE โโโ README.md โโโ README.zh-CN.md โโโ babel.config.js โโโ dist // folder, build files from src/components โโโ docs // folder, build files from src/demo โโโ jest.config.js // jest config โโโ package-lock.json โโโ package.json โโโ public // folder, demo public files โย ย โโโ favicon.ico โย ย โโโ index.html โโโ publish.sh // publish shell script โโโ rollup.config.js // rollup config โโโ src // folder, src folder โย ย โโโ components // folder, main folder โย ย โย ย โโโ VueHotspot.vue // entry file โย ย โย ย โโโ module // folder, module folder โย ย โย ย โย ย โโโ ControlBox.vue โย ย โย ย โย ย โโโ DataPoint.vue โย ย โย ย โโโ utils // folder, utils folder โย ย โย ย โโโ common.js โย ย โโโ demo // folder, demo files source folder โย ย โโโ Demo.vue โย ย โโโ assets โย ย โย ย โโโ logo.png โย ย โย ย โโโ unimelb.jpg โย ย โโโ components โย ย โย ย โโโ ShowCode.vue โย ย โย ย โโโ Toggle.vue โย ย โโโ main.js โโโ tests // folder, unit test folder โย ย โโโ unit โย ย โโโ ControlBox.spec.js โย ย โโโ DataPoint.spec.js โย ย โโโ common.spec.js โโโ vue.config.js // vue config file
. โโโ CHANGELOG.md โโโ LICENSE โโโ README.md โโโ README.zh-CN.md โโโ babel.config.js โโโ dist // folder, build files from src/components โโโ docs // folder, build files from src/demo โโโ jest.config.js // jest config โโโ package-lock.json โโโ package.json โโโ public // folder, demo public files โย ย โโโ favicon.ico โย ย โโโ index.html โโโ publish.sh // publish shell script โโโ rollup.config.js // rollup config โโโ src // folder, src folder โย ย โโโ components // folder, main folder โย ย โย ย โโโ VueHotspot.vue // entry file โย ย โย ย โโโ module // folder, module folder โย ย โย ย โย ย โโโ ControlBox.vue โย ย โย ย โย ย โโโ DataPoint.vue โย ย โย ย โโโ utils // folder, utils folder โย ย โย ย โโโ common.js โย ย โโโ demo // folder, demo files source folder โย ย โโโ Demo.vue โย ย โโโ assets โย ย โย ย โโโ logo.png โย ย โย ย โโโ unimelb.jpg โย ย โโโ components โย ย โย ย โโโ ShowCode.vue โย ย โย ย โโโ Toggle.vue โย ย โโโ main.js โโโ tests // folder, unit test folder โย ย โโโ unit โย ย โโโ ControlBox.spec.js โย ย โโโ DataPoint.spec.js โย ย โโโ common.spec.js โโโ vue.config.js // vue config file
options | description | required | default |
---|---|---|---|
image | Default image placeholder | true | an empty image with text 'Oops! image not found...' |
data | Object to hold the hotspot data points. Data structure: [ {Message: 'String', Title: 'String, x: Float, y: Float'} ] |
false | [] |
editable | Specify editable in which the plugin is to be used.true : Allows to create hotspots from UI.false : Display hotspots from data object |
false | true |
interactivity | Event on which the hotspot data point will show up. allowed values: click , hover , none |
false | hover |
hotspotColor | background color for hotspot dots | false | 'rgb(66, 184, 131)' |
messageBoxColor | background color for hotspot message boxes | false | 'rgb(255, 255, 255)' |
textColor | background color for hotspot text | false | 'rgb(53, 73, 94)' |
opacity | opacity for hotspots | false | 0.8 |
overlayText | text for overlay in edit mode | false | 'Please Click The Image To Add Hotspots.' |
$ npm i
$ npm run serve
Open http://localhost:8080/
to see the demo.
Vue-hotspot component is delivered under the MIT License