1- var zoomCSS = document . createElement ( 'style' ) ;
2- zoomCSS . innerHTML = ".zoom { cursor: zoom-in; }" ;
3- document . head . appendChild ( zoomCSS ) ;
1+ /**
2+ * 创建sleep方法(用于async / await的延时处理)
3+ * @param {int } ms 延时毫秒数
4+ */
5+ function sleep ( ms ) {
6+ return new Promise ( resolve => setTimeout ( resolve , ms ) ) ;
7+ }
48
5- var zoomPanel = document . createElement ( 'div' ) ;
6- document . body . appendChild ( zoomPanel ) ;
7- var zoomHtml = `
9+ const zoomHtml = `
810<div onclick="this.style.display='none'"
911 style="
1012 position: fixed;
@@ -21,8 +23,19 @@ var zoomHtml = `
2123 style="width: 80%; object-fit: cover;">
2224</div>` ;
2325
24- document . querySelectorAll ( '.zoom' ) . forEach ( img => {
25- img . addEventListener ( 'click' , e => {
26- zoomPanel . innerHTML = zoomHtml . replace ( 'imgPath' , img . src ) ;
26+ ( async ( ) => {
27+ while ( ! document . querySelector ( '.zoom' ) ) await sleep ( 1000 ) ;
28+
29+ var zoomCSS = document . createElement ( 'style' ) ;
30+ zoomCSS . innerHTML = ".zoom { cursor: zoom-in; }" ;
31+ document . head . appendChild ( zoomCSS ) ;
32+
33+ var zoomPanel = document . createElement ( 'div' ) ;
34+ document . body . appendChild ( zoomPanel ) ;
35+
36+ document . querySelectorAll ( '.zoom' ) . forEach ( img => {
37+ img . addEventListener ( 'click' , e => {
38+ zoomPanel . innerHTML = zoomHtml . replace ( 'imgPath' , img . src ) ;
39+ } ) ;
2740 } ) ;
28- } ) ;
41+ } ) ( ) ;
0 commit comments