Spacebar/Click/Tap/Right Arrow for next step Left Arrow for the previous step Ctrl+c for copying Ctrl+v for pasting Copy the ENTIRE code below with ctrl+c (Look at project for more info). Code: javascript: (t => {function i() {this.D = function() {const t = h.atan(this.i / this.d);l.save(), l.translate(this.b, this.a), l.rotate(-t), l.scale(this.e, this.e * h.max(1, h.pow(this.j, .7) / 15)), l.drawImage(m, -v / 2, -v / 2), l.restore()}}window;const h = Math,r = h.random,a = document,o = Date.now;e = (t => {l.clearRect(0, 0, _, f), l.fill(), requestAnimationFrame(e);const i = .001 * y.et;y.r();const s = L.et * g;for (var n = 0; n < C.length; ++n) {const t = C[n];t.i = h.sin(s + t.g) * t.h, t.j = h.sqrt(t.i * t.i + t.f), t.a += t.d * i, t.b += t.i * i, t.a > w && (t.a = -u), t.b > b && (t.b = -u), t.b < -u && (t.b = b), t.D()}}), s = (t => {for (var e = 0; e < p; ++e) C[e].a = r() * (f + u), C[e].b = r() * _}), n = (t => {c.width = _ = innerWidth, c.height = f = innerHeight, w = f + u, b = _ + u, s()});class d {constructor(t, e = !0) {this._ts = o(), this._p = !0, this._pa = o(), this.d = t, e && this.s()}get et() {return this.ip ? this._pa - this._ts : o() - this._ts}get rt() {return h.max(0, this.d - this.et)}get ip() {return this._p}get ic() {return this.et >= this.d}s() {return this._ts = o() - this.et, this._p = !1, this}r() {return this._pa = this._ts = o(), this}p() {return this._p = !0, this._pa = o(), this}st() {return this._p = !0, this}}const c = a.createElement("canvas");H = c.style, H.position = "fixed", H.left = 0, H.top = 0, H.width = "100vw", H.height = "100vh", H.zIndex = "100000", H.pointerEvents = "none", a.body.insertBefore(c, a.body.children[0]);const l = c.getContext("2d"),p = 300,g = 5e-4,u = 20;let _ = c.width = innerWidth,f = c.height = innerHeight,w = f + u,b = _ + u;const v = 15.2,m = a.createElement("canvas"),E = m.getContext("2d"),x = E.createRadialGradient(7.6, 7.6, 0, 7.6, 7.6, 7.6);x.addColorStop(0, "hsla(255,255%,255%,1)"), x.addColorStop(1, "hsla(255,255%,255%,0)"), E.fillStyle = x, E.fillRect(0, 0, v, v);let y = new d(0, !0),C = [],L = new d(0, !0);for (var j = 0; j < p; ++j) {const t = new i;t.a = r() * (f + u), t.b = r() * _, t.c = 1 * (3 * r() + .8), t.d = .1 * h.pow(t.c, 2.5) * 50 * (2 * r() + 1), t.d = t.d < 65 ? 65 : t.d, t.e = t.c / 7.6, t.f = t.d * t.d, t.g = r() * h.PI / 1.3, t.h = 15 * t.c, t.i = 0, t.j = 0, C.push(t)}s(), EL = a.addEventListener, EL("visibilitychange", () => setTimeout(n, 100), !1), EL("resize", n, !1), e()})()
This is a little present from me to everyone for the holiday season! It creates snow on your webpage! It doesn't work with some websites (like everything that has to do with google: newtab, chrome, doces, slides, etc.), but it works on Scratch! You can explore Scratch with your page snowing! More Info: This type of code is called a bookmarklet. Bookmarklets are useful in executing certain tasks without actually having to download anything. They can be repeatedly executed and were really popular around the beginning of the 21st century. Pls love and fave! It really means a lot to me! *note: you might have to activate it every time you are on a new page and it might be annoying for some of you. you have to go through the process to see it yourself because it doesn't look that great in a screenshot Credits go to the awesome people at GitHub Tags (ignore): #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #All #Tutorials #Tutorials #Tutorials #Tutorials #Tutorials #Tutorials #Tutorials #Tutorials #Tutorials #Tutorials #Winter #Winter #Winter #Winter #Winter #Winter #Snow #Snow #Snow #Snow #Snow #Snow #Snow #Web #Web #Web #Web #Web #Web #Web #Web