試写
一 html
2つのJSの導入
!関数(){ 関数n(N、E、T){ 戻り n.getAttribute(e)を|| T } 関数E(N){ 戻りdocument.getElementsByTagName(N) } 関数T(){ VARの T = E(" スクリプト")、O = t.length、I = tの[O - 1 ]。 リターン{ L:O、Z:N(I、" のZIndex "、1)、O:N(I、" 不透明度"、1)、C:N(I、" 色"、" 82183186 ")、N:N(I、" カウント"、99 ) } } 関数O(){ A = m.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth、 C = m.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight } 関数I(){ r.clearRect(0、0 、C)。 VAR N、E、T、O、M、L。 s.forEach(関数(I、X){ ため(IX + = i.xa、IY + = i.ya、i.xa * = IX> A || IX < 0? -1:1、i.ya * = IY> C || IY < 0?- 1:1、r.fillRect(IX - 5。、IY - 5、1、1)、E = X + 1。電子<u.length。E ++)N = U [E]、 ヌル == NX &&!ヌル == NY &&(O = IX! - NX、M = IY - NY、 L = O * O + M×m個、L <n.max && (N === Y && L> = n.max / 2 &&(IX - = 03 * O、IY - = 03 * M)、 T=(n.max - L)/ n.max、r.beginPath()、r.lineWidth = T / 2、r.strokeStyle = " RGBA(" + DC + " " +(Tの+。2)+ " )"r.moveTo(IX、IY)、r.lineTo(NX、NY)、r.stroke())) })、 X(I) } VARの A、C、U、M =のdocument.createElement(" キャンバス" )、 D = T()、L = " C_N " + DL、R = m.getContext(" 2D " )、 X = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || 関数(N){ window.setTimeoutは(N、1E3 / 45 ) }、 W Math.random =、Y = {X:ヌル、Y:ヌル、最大:2E4}。m.id = L、m.style.cssText = " 位置:固定;上部:0;左:0; z屈折率:" + DZ + " ;不透明度:" +行い、E(" 身体")[ 0 ] .appendChild(M)、O()、window.onresize = O、 window.onmousemove = 関数(N){ N = N || 窓。イベント、YX = n.clientX、YY = n.clientY }、 window.onmouseout = 関数(){ YX = ヌル、YY = NULL ;} 用(VAR S = []、F = 0 ; DN> F; F ++ ){ VARの H = W()*、G =()* C、V = W 2 * W() - 1、P = 2 * W() - 1 ; s.push({X:H、Y、G、XA:V、YA:P、最大:6E3}) } U = s.concat([Y]) のsetTimeout(関数(){I()}、100 ) }();