Skip to content

Commit 2cc52a8

Browse files
committed
Add fix for IE 9,10,11
1 parent 4aa11a0 commit 2cc52a8

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/image-map.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const COMPLETE = "complete";
1616
*/
1717
class ImageMap {
1818
constructor(selector, wait) {
19-
this.selector = selector instanceof Array ? selector : [...document.querySelectorAll(selector)];
19+
this.selector = selector instanceof Array ? selector : document.querySelectorAll(selector);
2020
if (document.readyState !== COMPLETE) window.addEventListener(LOAD, this.update.bind(this));
2121
else this.update();
2222
window.addEventListener(RESIZE, this.debounce(this.update, wait).bind(this));
@@ -30,11 +30,16 @@ class ImageMap {
3030
* Update
3131
*/
3232
update() {
33-
this.selector.forEach(img => {
33+
const imgs = this.selector;
34+
35+
for (let i = 0; i < imgs.length; i++) {
36+
const img = imgs[i];
37+
3438
if (img.getAttribute(USEMAP) === undefined) return;
3539
const newImg = img.cloneNode();
3640
newImg.addEventListener(LOAD, this.handleImageLoad(img.offsetWidth, img.offsetHeight));
37-
});
41+
newImg.src = img.src; // required for IE
42+
}
3843
}
3944

4045
/**
@@ -65,14 +70,17 @@ class ImageMap {
6570
const hPercent = offsetHeight / 100;
6671
const mapName = e.target.getAttribute(USEMAP).replace(/^#/, "");
6772

68-
[...document.querySelectorAll(ImageMap.genAreaSelector(mapName))].forEach(area => {
73+
const areas = document.querySelectorAll(ImageMap.genAreaSelector(mapName));
74+
for (let i = 0; i < areas.length; i++) {
75+
const area = areas[i];
76+
6977
const coordsString = (area.dataset[COORDS] = area.dataset[COORDS] || area.getAttribute(COORDS));
7078
const coordsArrayOld = coordsString.split(",");
7179
const coordsArrayNew = coordsArrayOld.map((_, i) =>
7280
i % 2 === 0 ? Number((coordsArrayOld[i] / w) * 100 * wPercent) : Number((coordsArrayOld[i] / h) * 100 * hPercent)
7381
);
7482
area.setAttribute(COORDS, coordsArrayNew.toString());
75-
});
83+
}
7684
};
7785
}
7886
}

0 commit comments

Comments
 (0)