Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
body { background-color: #111; } canvas { height: 100%; left: 0; position: absolute; top: 0; width: 100%; }
JavaScript
'use strict' const canvas = document.querySelector('canvas') const ctx = canvas.getContext('2d') let width, height, lastNow let snowflakes const maxSnowflakes = 100 function init() { snowflakes = [] resize() render(lastNow = performance.now()) } function render(now) { requestAnimationFrame(render) const elapsed = now - lastNow lastNow = now ctx.clearRect(0, 0, width, height) if (snowflakes.length < maxSnowflakes) snowflakes.push(new Snowflake()) ctx.fillStyle = ctx.strokeStyle = '#fff' snowflakes.forEach(snowflake => snowflake.update(elapsed, now)) } function pause() { cancelAnimationFrame(render) } function resume() { lastNow = performance.now() requestAnimationFrame(render) } class Snowflake { constructor() { this.spawn() } spawn(anyY = false) { this.x = rand(0, width) this.y = anyY === true ? rand(-50, height + 50) : rand(-50, -10) this.xVel = rand(-.05, .05) this.yVel = rand(.02, .1) this.angle = rand(0, Math.PI * 2) this.angleVel = rand(-.001, .001) this.size = rand(7, 12) this.sizeOsc = rand(.01, .5) } update(elapsed, now) { const xForce = rand(-.001, .001); if (Math.abs(this.xVel + xForce) < .075) { this.xVel += xForce } this.x += this.xVel * elapsed this.y += this.yVel * elapsed this.angle += this.xVel * 0.05 * elapsed //this.angleVel * elapsed if ( this.y - this.size > height || this.x + this.size < 0 || this.x - this.size > width ) { this.spawn() } this.render() } render() { ctx.save() const { x, y, angle, size } = this ctx.beginPath() ctx.arc(x, y, size * 0.2, 0, Math.PI * 2, false) ctx.fill() ctx.restore() } } // Utils const rand = (min, max) => min + Math.random() * (max - min) function resize() { width = canvas.width = window.innerWidth height = canvas.height = window.innerHeight } window.addEventListener('resize', resize) window.addEventListener('blur', pause) window.addEventListener('focus', resume) init()
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>js雪花飘落动画-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号