v-cut-reactive

在图片上定义响应式热点区域,可以关联事件。 支持窗口大小响应式变化热点区域

Usage no npm install needed!

<script type="module">
  import vCutReactive from 'https://cdn.skypack.dev/v-cut-reactive';
</script>

README

v-cut-reactive

在图片上定义响应式热点区域,可以关联事件。
支持窗口大小响应式变化热点区域

插件的安装

NPM

npm i v-cut-reactive

引入插件

import Vue from 'vue';
import VCutReactive from 'v-cut-reactive';
Vue.use(VCutReactive);

基本用法

<template>
  <div class="home">
    <img
      class="img"
      alt="Vue logo"
      src="../assets/timg.jpg"
      v-cut-reactive:imgMap="areaOptions"
    />
  </div>
</template>

<script>
export default {
  name: "Home",
  data() {
    return {
      areaOptions: [
        {
          coords: [778, 1422, 250, 1304],
          shape: "rect",
          target: "_parent",
          title: "安卓下载",
          href: "",
          events: {
            click: this.imgClick.bind(this, "安卓下载")
          }
        },
        {
          coords: [778, 1615, 253, 1493],
          shape: "rect",
          target: "_parent",
          title: "IOS下载",
          href: "http://www.baidu.com",
          events: {
            click: this.imgClick.bind(this, "IOS下载")
          }
        }
      ]
    };
  },
  methods: {
    imgClick(name) {
      alert("clicked: " + name);
    }
  }
};
</script>

<style lang="less" scoped>
.img {
  width: 100%;
}
</style>

API

v-cut-reactive:mapKey="areaOptions"

mapKey ( String )

定义生成map标签的key值(唯一,同一页面不可重复)

areaOptions ( Array )

配置项 | 属性 | 说明 | 参数 |
| :- | :- | :- | | events | 为选择区域添加事件 | 详见上述示例 | | ... | 可传入area标签的所有属性 | coords (Array),shape, target,title,href...(coords 和 shape为必填项)|

其他

areaOptions中coords的区域范围,可以通过http://www.image-map.net/选择区域