Giter Site home page Giter Site logo

tobiasdiez / vue-hotspot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jamesxwang/vue-hotspot

0.0 2.0 0.0 3.18 MB

๐Ÿ–– vue-hotspot is a Hotspot component for Vue.js.

Home Page: https://jamesxwang.com/vue-hotspot/

License: MIT License

Shell 0.55% JavaScript 24.90% HTML 2.26% Vue 72.30%

vue-hotspot's Introduction

Vue circle-ci Coverage Status npm License GitHub code size in bytes Version

English | ็ฎ€ไฝ“ไธญๆ–‡

Introduction

Vue-Hotspot is an image hotspot component for Vue.js.

Installation

npm (Recommended)

$ npm install vue-hotspot --save

yarn

$ yarn add vue-hotspot

Usage

ES Modules with npm (Recommended)

import Vue from 'vue'
import VueHotspot from 'vue-hotspot' // refers to components/VueHotspot.vue in webpack

Using the component

<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>

Live Demo

You can see more examples here.

Project Structure

.
โ”œโ”€โ”€ 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

Project Structure

.
โ”œโ”€โ”€ 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

Config Options

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.'

Local development

$ npm i
$ npm run serve

Open http://localhost:8080/ to see the demo.

License

Vue-hotspot component is delivered under the MIT License

vue-hotspot's People

Contributors

dependabot[bot] avatar flemingh avatar jamesxwang avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.