1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { } else { document.write('<canvas id="snow" style="position:fixed;top:0;left:0;width:100%;height:100%;z-index:100;pointer-events:none"></canvas>');
window && (() => { let e = { flakeCount: 50, minDist: 150, color: "255, 255, 255", size: 2, speed: .5, opacity: .2, stepsize: .5 }; const t = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function (e) { window.setTimeout(e, 1e3 / 60) } ; window.requestAnimationFrame = t; const i = document.getElementById("snow"), n = i.getContext("2d"), o = e.flakeCount; let a = -100, d = -100, s = []; i.width = window.innerWidth, i.height = window.innerHeight; const h = () => { n.clearRect(0, 0, i.width, i.height); const r = e.minDist; for (let t = 0; t < o; t++) { let o = s[t]; const h = a, w = d, m = o.x, c = o.y, p = Math.sqrt((h - m) * (h - m) + (w - c) * (w - c)); if (p < r) { const e = (h - m) / p, t = (w - c) / p, i = r / (p * p) / 2; o.velX -= i * e, o.velY -= i * t } else o.velX *= .98, o.velY < o.speed && o.speed - o.velY > .01 && (o.velY += .01 * (o.speed - o.velY)), o.velX += Math.cos(o.step += .05) * o.stepSize; n.fillStyle = "rgba(" + e.color + ", " + o.opacity + ")", o.y += o.velY, o.x += o.velX, (o.y >= i.height || o.y <= 0) && l(o), (o.x >= i.width || o.x <= 0) && l(o), n.beginPath(), n.arc(o.x, o.y, o.size, 0, 2 * Math.PI), n.fill() } t(h) } , l = e => { e.x = Math.floor(Math.random() * i.width), e.y = 0, e.size = 3 * Math.random() + 2, e.speed = 1 * Math.random() + .5, e.velY = e.speed, e.velX = 0, e.opacity = .5 * Math.random() + .3 } ; document.addEventListener("mousemove", (e => { a = e.clientX, d = e.clientY } )), window.addEventListener("resize", (() => { i.width = window.innerWidth, i.height = window.innerHeight } )), (() => { for (let t = 0; t < o; t++) { const t = Math.floor(Math.random() * i.width) , n = Math.floor(Math.random() * i.height) , o = 3 * Math.random() + e.size , a = 1 * Math.random() + e.speed , d = .5 * Math.random() + e.opacity; s.push({ speed: a, velX: 0, velY: a, x: t, y: n, size: o, stepSize: Math.random() / 30 * e.stepsize, step: 0, angle: 180, opacity: d }) } h() } )() } )(); }
if (!(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { (function ($) { $.fn.snow = function (options) { var $flake = $('<div id="snowbox" />').css({ 'position': 'absolute', 'z-index': '9999', 'top': '-50px' }).html('❄'), documentheight = $(document).height(), documentwidth = $(document).width(), defaults = { minsize: 10, maxsize: 20, newon: 1000, flakecolor: "#afdaef" }, options = $.extend({}, defaults, options); var interval = setInterval(function () { var startpositionleft = Math.random() * documentwidth - 100, startopacity = 0.5 + Math.random(), sizeflake = options.minsize + Math.random() * options.maxsize, endpositiontop = documentheight - 200, endpositionleft = startpositionleft - 500 + Math.random() * 500, durationfall = documentheight * 10 + Math.random() * 5000; $flake.clone().appendTo('body').css({ left: startpositionleft, opacity: startopacity, 'font-size': sizeflake, color: options.flakecolor }).animate({ top: endpositiontop, left: endpositionleft, opacity: 0.2 }, durationfall, 'linear', function () { $(this).remove(); }); }, options.newon); }; })(jQuery);
$(function () { $.fn.snow({ minsize: 5, maxsize: 25, newon: 800 }); }); }
|