|
1 | 1 | /** |
2 | 2 | * |
3 | | - * Image-Map v1.0.2 (https://www.travismclarke.com) |
| 3 | + * Image-Map v1.0.3 (https://www.travismclarke.com) |
4 | 4 | * Copyright 2016 Travis Clarke |
5 | 5 | * License: MIT |
6 | 6 | * |
|
31 | 31 |
|
32 | 32 | self.selector = selector instanceof $ ? selector.toArray() : [].slice.call(document.querySelectorAll(selector)); |
33 | 33 |
|
34 | | - self.selector.forEach(function (val) { |
35 | | - var img = val, |
36 | | - newImg = document.createElement('img'); |
| 34 | + (self.update = function () { |
| 35 | + self.selector.forEach(function (val) { |
| 36 | + var img = val, |
| 37 | + newImg = document.createElement('img'); |
37 | 38 |
|
38 | | - if (typeof img.getAttribute('usemap') === 'undefined') { return; } |
| 39 | + if (typeof img.getAttribute('usemap') === 'undefined') { return; } |
39 | 40 |
|
40 | | - newImg.addEventListener('load', function () { |
41 | | - var clone = new Image(); |
42 | | - clone.src = img.getAttribute('src'); |
| 41 | + newImg.addEventListener('load', function () { |
| 42 | + var clone = new Image(); |
| 43 | + clone.src = img.getAttribute('src'); |
43 | 44 |
|
44 | | - var w = img.getAttribute('width') || clone.width, |
45 | | - h = img.getAttribute('height') || clone.height, |
46 | | - wPercent = img.offsetWidth / 100, |
47 | | - hPercent = img.offsetHeight / 100, |
48 | | - map = img.getAttribute('usemap').replace('#', ''), |
49 | | - c = 'coords'; |
| 45 | + var w = img.getAttribute('width') || clone.width, |
| 46 | + h = img.getAttribute('height') || clone.height, |
| 47 | + wPercent = img.offsetWidth / 100, |
| 48 | + hPercent = img.offsetHeight / 100, |
| 49 | + map = img.getAttribute('usemap').replace('#', ''), |
| 50 | + c = 'coords'; |
50 | 51 |
|
51 | | - [].forEach.call(document.querySelectorAll('map[name="' + map + '"] area'), function (val) { |
52 | | - var area = val, |
53 | | - coordsS = area.dataset[c] = area.dataset[c] || area.getAttribute(c), |
54 | | - coordsA = coordsS.split(','), |
55 | | - coordsPercent = Array.apply(null, Array(coordsA.length)); |
| 52 | + [].forEach.call(document.querySelectorAll('map[name="' + map + '"] area'), function (val) { |
| 53 | + var area = val, |
| 54 | + coordsS = area.dataset[c] = area.dataset[c] || area.getAttribute(c), |
| 55 | + coordsA = coordsS.split(','), |
| 56 | + coordsPercent = Array.apply(null, Array(coordsA.length)); |
56 | 57 |
|
57 | | - coordsPercent.forEach(function (val, i) { |
58 | | - coordsPercent[i] = i % 2 === 0 ? Number(((coordsA[i] / w) * 100) * wPercent) : Number(((coordsA[i] / h) * 100) * hPercent); |
| 58 | + coordsPercent.forEach(function (val, i) { |
| 59 | + coordsPercent[i] = i % 2 === 0 ? Number(((coordsA[i] / w) * 100) * wPercent) : Number(((coordsA[i] / h) * 100) * hPercent); |
| 60 | + }); |
| 61 | + area.setAttribute(c, coordsPercent.toString()); |
59 | 62 | }); |
60 | | - area.setAttribute(c, coordsPercent.toString()); |
61 | 63 | }); |
| 64 | + newImg.setAttribute('src', img.getAttribute('src')); |
62 | 65 | }); |
63 | | - newImg.setAttribute('src', img.getAttribute('src')); |
64 | | - }); |
| 66 | + })(); |
65 | 67 |
|
66 | | - window.addEventListener('resize', function () { |
67 | | - return new ImageMap(selector); |
68 | | - }); |
| 68 | + window.addEventListener('resize', self.update); |
69 | 69 |
|
70 | 70 | return self; |
71 | 71 | }; |
|
0 commit comments