@@ -16,7 +16,7 @@ const COMPLETE = "complete";
1616 */
1717class 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