Thunf / ng-img-map

Plugin to draw img-map-area with angular
http://thunf.github.io/ng-img-map
MIT License
17 stars 8 forks source link

ng-img-map

基于angularJS,用来绘制 图片热点(<map> <area>) 的组件。

A plugin to draw <map> and <area> easily, based on angularJS.

Live Demo

Screenshot

demo

Usage

Download

下载本项目,在compile文件夹下可以找到编译后的文件

Download this project and get files compiled in compile floder

download: ng-img-map-gh-pages.zip

Add files

添加JS和CSS文件引用到项目中,并确认 ng-img-map.js 文件位于 angular.js 之后。

Include script and stylesheet to your project, make sure the ng-img-map.js is inserted after the angular.js :

<script src="https://github.com/Thunf/ng-img-map/raw/gh-pages/angular.js"></script>
<script src="https://github.com/Thunf/ng-img-map/raw/gh-pages/ng-img-map.js"></script>
<link rel="stylesheet" type="text/css" href="https://github.com/Thunf/ng-img-map/blob/gh-pages/ng-img-map.css">

Add a dependancy

在应用中把 ng-img-map 添加为依赖。

Add the ng-img-map as a dependancy to your application module:

var myAppModule = angular.module('MyApp', ['ngImgMap']);

Configure

1、在HTML文件中,添加 <ng-img-map> 或具有 ng-img-map 属性的标签。

2、给该标签绑定图像数据(ng-model="imgdata"),指令将自动获取图像数据(数据格式),并监测数据是否更新。

3、给该标签绑定预设方法(ng-img-map-fns="mapFns"),指令将使用方法集中对应的方法获取参数(方法集格式)。每次监测到数据更改都会调用方法集初始生成器。

4、根据个人需求,给数据加入自定义字段

5、玩吧~

Attribution

<ng-img-map ng-model="{object}" ng-img-map-fns="{object}" />

Data format

{
    "pic_url": "images/demo-400x300.png",
    "maps": [
        {"coords":[32,19,202,296]},
        {"coords":[21,19,376,300]}
    ]
}

Function format

{
    getCanSize: function() {
        return [950, 1000];
    },
    getImgSize: function(img) {
        return _getImgSize(img.pic_url) || [950, 500];
    }
}

Calculation

针对每张图片,都会在img数据里挂载一个获取对应生成器的方法(getCalculation),用来获取生成器:

For each picture, it will generator an exclusive function which can get this calculation to this image data. You can use it to get this calculation like this:

    var calculation = img.getCalculation();

:exclamation: 在添加新区域时,需调用 calculation.checkCoords() 来修正坐标位,以确保坐标位于可视画布区域内,否则将导致热点无法正确移动。

Attention

Demo

See the index.html

License

See the LICENSE file.