UNPKG

halo-theme-dream

Version:

梦之城,童话梦境,动漫类型博客主题。

345 lines (344 loc) 9.83 kB
$(function () { let t = function () { 'use strict' function t(t) { return '[object Array]' === Object.prototype.toString.call(t) } function e(t) { return 'function' == typeof t } function n(t) { return 'number' == typeof t } function i(t) { return 'string' == typeof t } function o(t) { return b[t] || String.fromCharCode(t) } function r(t, e, n) { for (var i in e) // eslint-disable-next-line no-prototype-builtins (n || !t.hasOwnProperty(i)) && (t[i] = e[i]) return t } function a(t, e) { return function () { t.apply(e, arguments) } } function c(t) { var n = {} for (var i in t) n[i] = e(t[i]) ? a(t[i], t) : t[i] return n } function s(t) { function n(n) { e(n) && n.apply(t, [].splice.call(arguments, 1)) } function a(t) { for (_ = 0; _ < $.length; _++) D = $[_], i(D) ? O[(t ? 'add' : 'remove') + 'EventListener'].call(O, D, A, !1) : e(D) ? A = D : O = D } function s() { S(N), N = k(s), U || (n(t.setup), U = e(t.setup), n(t.resize)), t.running && !M && (t.dt = (B = +new Date) - t.now, t.millis += t.dt, t.now = B, n(t.update), t.autoclear && K && t.clear(), n(t.draw)), M = ++M % t.interval } function u() { O = j ? t.style : t.canvas, W = j ? 'px' : '', t.fullscreen && (t.height = w.innerHeight, t.width = w.innerWidth), O.height = t.height + W, O.width = t.width + W, t.retina && K && Y && (O.height = t.height * Y, O.width = t.width * Y, O.style.height = t.height + 'px', O.style.width = t.width + 'px', t.scale(Y, Y)), U && n(t.resize) } function l(t, e) { return R = e.getBoundingClientRect(), t.x = t.pageX - R.left - w.scrollX, t.y = t.pageY - R.top - w.scrollY, t } function h(e, n) { return l(e, t.element), n = n || {}, n.ox = n.x || e.x, n.oy = n.y || e.y, n.x = e.x, n.y = e.y, n.dx = n.x - n.ox, n.dy = n.y - n.oy, n } function d(t) { if (t.preventDefault(), F = c(t), F.originalEvent = t, F.touches) for (Q.length = F.touches.length, _ = 0; _ < F.touches.length; _++) Q[_] = h(F.touches[_], Q[_]) else Q.length = 0, Q[0] = h(F, V) return r(V, Q[0], !0), F } function f(e) { for (e = d(e), X = (q = $.indexOf(G = e.type)) - 1, t.dragging = !!/down|start/.test(G) || !/up|end/.test(G) && t.dragging; X; ) i($[X]) ? n(t[$[X--]], e) : i($[q]) ? n(t[$[q++]], e) : X = 0 } function p(e) { z = e.keyCode, H = 'keyup' == e.type, J[z] = J[o(z)] = !H, n(t[e.type], e) } function m(e) { t.autopause && ('blur' == e.type ? C : E)(), n(t[e.type], e) } function E() { t.now = +new Date, t.running = !0 } function C() { t.running = !1 } function P() { (t.running ? C : E)() } function T() { K && t.clearRect(0, 0, t.width, t.height) } function I() { L = t.element.parentNode, _ = x.indexOf(t), L && L.removeChild(t.element), ~_ && x.splice(_, 1), a(!1), C() } var N, A, O, L, R, _, W, B, D, F, G, z, H, X, q, M = 0, Q = [], U = !1, Y = w.devicePixelRatio, j = t.type == y, K = t.type == g, V = { x: 0, y: 0, ox: 0, oy: 0, dx: 0, dy: 0 }, $ = [t.element, f, 'mousedown', 'touchstart', f, 'mousemove', 'touchmove', f, 'mouseup', 'touchend', f, 'click', v, p, 'keydown', 'keyup', w, m, 'focus', 'blur', u, 'resize'], J = {} for (z in b) J[b[z]] = !1 return r(t, { touches: Q, mouse: V, keys: J, dragging: !1, running: !1, millis: 0, now: NaN, dt: NaN, destroy: I, toggle: P, clear: T, start: E, stop: C }), x.push(t), t.autostart && E(), a(!0), u(), s(), t } let u = document.createElement('div') u.setAttribute('id', 'clickCanvas'), u.style.cssText = 'position:fixed;left:0;top:0;z-index:1000;pointer-events:none;', document.body.appendChild(u) for (var l, h, d = 'E LN10 LN2 LOG2E LOG10E PI SQRT1_2 SQRT2 abs acos asin atan ceil cos exp floor log round sin sqrt tan atan2 pow max min'.split(' '), f = '__hasSketch', p = Math, g = 'canvas', m = 'webgl', y = 'dom', v = document, w = window, x = [], E = { fullscreen: !0, autostart: !0, autoclear: !0, autopause: !0, container: v.body, interval: 1, globals: !0, retina: !1, type: g }, b = { 8: 'BACKSPACE', 9: 'TAB', 13: 'ENTER', 16: 'SHIFT', 27: 'ESCAPE', 32: 'SPACE', 37: 'LEFT', 38: 'UP', 39: 'RIGHT', 40: 'DOWN' }, C = { CANVAS: g, WEB_GL: m, WEBGL: m, DOM: y, instances: x, install: function (e) { if (!e[f]) { for (var i = 0; i < d.length; i++) e[d[i]] = p[d[i]] r(e, { TWO_PI: 2 * p.PI, HALF_PI: p.PI / 2, QUATER_PI: p.PI / 4, random: function (e, i) { return t(e) ? e[~~(p.random() * e.length)] : (n(i) || (i = e || 1, e = 0), e + p.random() * (i - e)) }, lerp: function (t, e, n) { return t + n * (e - t) }, map: function (t, e, n, i, o) { return (t - e) / (n - e) * (o - i) + i } }), e[f] = !0 } }, create: function (t) { return t = r(t || {}, E), t.globals && C.install(self), l = t.element = t.element || v.createElement(t.type === y ? 'div' : 'canvas'), h = t.context = t.context || function () { switch (t.type) { case g: return l.getContext('2d', t) case m: return l.getContext('webgl', t) || l.getContext('experimental-webgl', t) case y: return l.canvas = l } } (), t.container.appendChild(l), C.augment(h, t) }, augment: function (t, e) { return e = r(e || {}, E), e.element = t.canvas || t, e.element.className += ' sketch', r(t, e, !0), s(t) } }, P = ['ms', 'moz', 'webkit', 'o'], T = self, I = 0, N = 'AnimationFrame', A = 'request' + N, O = 'cancel' + N, k = T[A], S = T[O], L = 0; L < P.length && !k; L++) k = T[P[L] + 'Request' + N], S = T[P[L] + 'Cancel' + A] return T[A] = k = k || function (t) { var e = +new Date, n = p.max(0, 16 - (e - I)), i = setTimeout(function () { t(e + n) }, n) return I = e + n, i }, T[O] = S = S || function (t) { clearTimeout(t) }, C }() if (document.getElementById('clickCanvas')) { function e(t, e, n) { this.init(t, e, n) } e.prototype = { init: function (t, e, n) { this.alive = !0, this.radius = n || 10, this.wander = .15, this.theta = random(TWO_PI), this.drag = .92, this.color = '#ffeb3b', this.x = t || 0, this.y = e || 0, this.vx = 0, this.vy = 0 }, move: function () { this.x += this.vx, this.y += this.vy, this.vx *= this.drag, this.vy *= this.drag, this.theta += random( - .5, .5) * this.wander, this.vx += .1 * sin(this.theta), this.vy += .1 * cos(this.theta), this.radius *= .96, this.alive = this.radius > .5 }, draw: function (t) { t.beginPath(), t.arc(this.x, this.y, this.radius, 0, TWO_PI), t.fillStyle = this.color, t.fill() } } var n = 50, i = ['#5ee4ff', '#f44033', '#ffeb3b', '#F38630', '#FA6900', '#f403e8', '#F9D423'], o = [], r = [], a = t.create({ container: document.getElementById('clickCanvas') }) a.spawn = function (t, a) { o.length >= n && r.push(o.shift()), particle = r.length ? r.pop() : new e, particle.init(t, a, random(5, 20)), particle.wander = random(.5, 2), particle.color = random(i), particle.drag = random(.9, .99), theta = random(TWO_PI), force = random(1, 5), particle.vx = sin(theta) * force, particle.vy = cos(theta) * force, o.push(particle) }, a.update = function () { var t, e for (t = o.length - 1; t >= 0; t--) e = o[t], e.alive ? e.move() : r.push(o.splice(t, 1)[0]) }, a.draw = function () { a.globalCompositeOperation = 'lighter' for (var t = o.length - 1; t >= 0; t--) o[t].draw(a) }, document.addEventListener('mousedown', function (t) { var e, n 'TEXTAREA' !== t.target.nodeName && 'INPUT' !== t.target.nodeName && 'A' !== t.target.nodeName && 'I' !== t.target.nodeName && 'IMG' !== t.target.nodeName && function () { for (e = random(15, 20), n = 0; n < e; n++) a.spawn(t.clientX, t.clientY) } () }) } })