Skip to content

Commit 0217b18

Browse files
committed
v1.1.7 - add support for IE 9, 10, and 11, fixes #10
1 parent 2cc52a8 commit 0217b18

File tree

4 files changed

+42
-66
lines changed

4 files changed

+42
-66
lines changed

dist/image-map.es.js

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -29,27 +29,7 @@ function _createClass(Constructor, protoProps, staticProps) {
2929
return Constructor;
3030
}
3131

32-
function _toConsumableArray(arr) {
33-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
34-
}
35-
36-
function _arrayWithoutHoles(arr) {
37-
if (Array.isArray(arr)) {
38-
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
39-
40-
return arr2;
41-
}
42-
}
43-
44-
function _iterableToArray(iter) {
45-
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
46-
}
47-
48-
function _nonIterableSpread() {
49-
throw new TypeError("Invalid attempt to spread non-iterable instance");
50-
}
51-
52-
var version = "1.1.6";
32+
var version = "1.1.7";
5333

5434
var RESIZE = "resize";
5535
var LOAD = "load";
@@ -70,7 +50,7 @@ function () {
7050
function ImageMap(selector, wait) {
7151
_classCallCheck(this, ImageMap);
7252

73-
this.selector = selector instanceof Array ? selector : _toConsumableArray(document.querySelectorAll(selector));
53+
this.selector = selector instanceof Array ? selector : document.querySelectorAll(selector);
7454
if (document.readyState !== COMPLETE) window.addEventListener(LOAD, this.update.bind(this));else this.update();
7555
window.addEventListener(RESIZE, this.debounce(this.update, wait).bind(this));
7656
}
@@ -82,13 +62,15 @@ function () {
8262
* Update
8363
*/
8464
value: function update() {
85-
var _this = this;
65+
var imgs = this.selector;
8666

87-
this.selector.forEach(function (img) {
67+
for (var i = 0; i < imgs.length; i++) {
68+
var img = imgs[i];
8869
if (img.getAttribute(USEMAP) === undefined) return;
8970
var newImg = img.cloneNode();
90-
newImg.addEventListener(LOAD, _this.handleImageLoad(img.offsetWidth, img.offsetHeight));
91-
});
71+
newImg.addEventListener(LOAD, this.handleImageLoad(img.offsetWidth, img.offsetHeight));
72+
newImg.src = img.src; // required for IE
73+
}
9274
}
9375
/**
9476
* Debounce
@@ -100,7 +82,7 @@ function () {
10082
}, {
10183
key: "debounce",
10284
value: function debounce(func) {
103-
var _this2 = this;
85+
var _this = this;
10486

10587
var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
10688
var timeout;
@@ -112,7 +94,7 @@ function () {
11294
window.clearTimeout(timeout);
11395
timeout = window.setTimeout(function (ctx) {
11496
return func.apply(ctx, args);
115-
}, wait, _this2);
97+
}, wait, _this);
11698
};
11799
}
118100
/**
@@ -133,15 +115,21 @@ function () {
133115
var wPercent = offsetWidth / 100;
134116
var hPercent = offsetHeight / 100;
135117
var mapName = e.target.getAttribute(USEMAP).replace(/^#/, "");
118+
var areas = document.querySelectorAll(ImageMap.genAreaSelector(mapName));
136119

137-
_toConsumableArray(document.querySelectorAll(ImageMap.genAreaSelector(mapName))).forEach(function (area) {
120+
var _loop = function _loop(i) {
121+
var area = areas[i];
138122
var coordsString = area.dataset[COORDS] = area.dataset[COORDS] || area.getAttribute(COORDS);
139123
var coordsArrayOld = coordsString.split(",");
140124
var coordsArrayNew = coordsArrayOld.map(function (_, i) {
141125
return i % 2 === 0 ? Number(coordsArrayOld[i] / w * 100 * wPercent) : Number(coordsArrayOld[i] / h * 100 * hPercent);
142126
});
143127
area.setAttribute(COORDS, coordsArrayNew.toString());
144-
});
128+
};
129+
130+
for (var i = 0; i < areas.length; i++) {
131+
_loop(i);
132+
}
145133
};
146134
}
147135
}], [{

dist/image-map.js

Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
(function (global, factory) {
99
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
1010
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
11-
(global.ImageMap = factory(global.$));
12-
}(this, (function ($) { 'use strict';
11+
(global = global || self, global.ImageMap = factory(global.$));
12+
}(this, function ($) { 'use strict';
1313

1414
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
1515

@@ -35,27 +35,7 @@
3535
return Constructor;
3636
}
3737

38-
function _toConsumableArray(arr) {
39-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
40-
}
41-
42-
function _arrayWithoutHoles(arr) {
43-
if (Array.isArray(arr)) {
44-
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
45-
46-
return arr2;
47-
}
48-
}
49-
50-
function _iterableToArray(iter) {
51-
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
52-
}
53-
54-
function _nonIterableSpread() {
55-
throw new TypeError("Invalid attempt to spread non-iterable instance");
56-
}
57-
58-
var version = "1.1.6";
38+
var version = "1.1.7";
5939

6040
var RESIZE = "resize";
6141
var LOAD = "load";
@@ -76,7 +56,7 @@
7656
function ImageMap(selector, wait) {
7757
_classCallCheck(this, ImageMap);
7858

79-
this.selector = selector instanceof Array ? selector : _toConsumableArray(document.querySelectorAll(selector));
59+
this.selector = selector instanceof Array ? selector : document.querySelectorAll(selector);
8060
if (document.readyState !== COMPLETE) window.addEventListener(LOAD, this.update.bind(this));else this.update();
8161
window.addEventListener(RESIZE, this.debounce(this.update, wait).bind(this));
8262
}
@@ -88,13 +68,15 @@
8868
* Update
8969
*/
9070
value: function update() {
91-
var _this = this;
71+
var imgs = this.selector;
9272

93-
this.selector.forEach(function (img) {
73+
for (var i = 0; i < imgs.length; i++) {
74+
var img = imgs[i];
9475
if (img.getAttribute(USEMAP) === undefined) return;
9576
var newImg = img.cloneNode();
96-
newImg.addEventListener(LOAD, _this.handleImageLoad(img.offsetWidth, img.offsetHeight));
97-
});
77+
newImg.addEventListener(LOAD, this.handleImageLoad(img.offsetWidth, img.offsetHeight));
78+
newImg.src = img.src; // required for IE
79+
}
9880
}
9981
/**
10082
* Debounce
@@ -106,7 +88,7 @@
10688
}, {
10789
key: "debounce",
10890
value: function debounce(func) {
109-
var _this2 = this;
91+
var _this = this;
11092

11193
var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
11294
var timeout;
@@ -118,7 +100,7 @@
118100
window.clearTimeout(timeout);
119101
timeout = window.setTimeout(function (ctx) {
120102
return func.apply(ctx, args);
121-
}, wait, _this2);
103+
}, wait, _this);
122104
};
123105
}
124106
/**
@@ -139,15 +121,21 @@
139121
var wPercent = offsetWidth / 100;
140122
var hPercent = offsetHeight / 100;
141123
var mapName = e.target.getAttribute(USEMAP).replace(/^#/, "");
124+
var areas = document.querySelectorAll(ImageMap.genAreaSelector(mapName));
142125

143-
_toConsumableArray(document.querySelectorAll(ImageMap.genAreaSelector(mapName))).forEach(function (area) {
126+
var _loop = function _loop(i) {
127+
var area = areas[i];
144128
var coordsString = area.dataset[COORDS] = area.dataset[COORDS] || area.getAttribute(COORDS);
145129
var coordsArrayOld = coordsString.split(",");
146130
var coordsArrayNew = coordsArrayOld.map(function (_, i) {
147131
return i % 2 === 0 ? Number(coordsArrayOld[i] / w * 100 * wPercent) : Number(coordsArrayOld[i] / h * 100 * hPercent);
148132
});
149133
area.setAttribute(COORDS, coordsArrayNew.toString());
150-
});
134+
};
135+
136+
for (var i = 0; i < areas.length; i++) {
137+
_loop(i);
138+
}
151139
};
152140
}
153141
}], [{
@@ -174,4 +162,4 @@
174162

175163
return _ImageMap;
176164

177-
})));
165+
}));

dist/image-map.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "image-map",
3-
"version": "1.1.6",
3+
"version": "1.1.7",
44
"description": "Response, dynamic image maps",
55
"main": "dist/image-map.js",
66
"module": "dist/image-map.es.js",

0 commit comments

Comments
 (0)