출처 : https://www.cnblogs.com/Sharley/p/9603129.html
효과 :
다음 바닥 글 설정에서의 HTML 코드를 추가 - "> 설정 관리"하는 블로그 모드로 설정
<script> ! 함수 () { 함수 N (N, E, t) { 창 n.getAttribute (E) || t } 함수 E (n)은 { 반환 document.getElementsByTagName (N) } 함수 t () { var에 t = E ( "스크립트"), O = t.length 난 t = [0 1 ]; 창 { L : O, Z : N (I, "Z- 색인 '- 1), O : N (I"불투명 "5.), C : N (I,"컬러 ","0,0,0 "), N : N (전", "99 카운트 ) } } 함수 O () { = 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 , A, C); VAR의 N, E, T, O, m, L; s.forEach ( 함수 (I, X) { 대 (i.x + = i.xa, i.y + = i.ya, i.xa * = IX>를 IX || <0-1 : 1, I. ? 나중에 * = IY> C IY || <0-1 : 1, r.fillRect (IX-0.5, IY-.5,1,1), E = X + 1, E <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 ("+ D.C + ", 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 창 || .msRequestAnimationFrame || 함수 (N) { window.setTimeout (N, 1e3 / 45) }, w = 인 Math.random, Y = {X : 널 , Y : 널 , 최대 : 2e4} m.id = L, m.style.cssText = "총수 : 고정, 상단 : 0] 왼쪽 : 0] Z- 색인"+ d.z + ", 불투명도"+ 수행 E ( '신체') [0] .appendChild (m), O () 창문. window.onmousemove = 함수 (N) { N = N || window.event를, YX = n.clientX, YY = n.clientY } window.onmouseout = 함수 () { YX = 널 , YY = 널 }; 대 ( VAR ; DN> F, S = [], F = 0 F ++ ) { var에 (w H =) * A, g = w () * C, V = 2 * w () - 1, p = 2 * () w - 1; s.push ({X : H, Y : g, XA : V 나중에 : P, 최대 : 6e3 }) } U = s.concat ([Y]) 의 setTimeout ( 함수 () { I ()}, 100 ) } (); </ script>