Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
html, body { margin: 0; background: #000; height: 100vh; overflow: hidden; } body:before, body:after { content: ''; position: absolute; z-index: 1; top: 50%; left: 50%; width: 100vw; height: 100vh; transform: translate(-50%, -50%); transform-origin: 0 0; mix-blend-mode: hard-light; background: linear-gradient(45deg, #e10000, #40ab00); } body:after { z-index: 2; content: 'MITOSYS'; font-family: 'Montserrat', sans-serif; mix-blend-mode: soft-light; background: none; color: #fff; font-size: 20px; text-align: center; letter-spacing: 10vw; top: 50%; left: calc(50% + 5vw); transform: translateX(-50%); height: auto; @media (max-width: 575px) { font-size: 12px; } } * { }
JavaScript
/*-------------------- Settings --------------------*/ let canvas = document.getElementById('mitosys'), ctx = canvas.getContext('2d'), winW = canvas.width = window.innerWidth, winH = canvas.height = window.innerHeight, ticker = 0, Balls = [], maxBalls = 10, easing = 1 / 10; /*-------------------- Balls --------------------*/ class Ball { constructor(options) { Object.assign(this, options); this.r = 100 + Math.random() * 100; this.pos = { x: Math.random() * winW, y: Math.random() * winH }; this.direction = { x: -1 + Math.random() * 2, y: -1 + Math.random() * 2 }; this.activePos = { x: this.pos.x, y: this.pos.y }; } draw() { this.color = gradientBg(this.activePos.x, this.activePos.y, this.r); ctx.fillStyle = this.color; ctx.beginPath(); ctx.arc(this.activePos.x, this.activePos.y, this.r, 0, 2 * Math.PI); ctx.fill(); } update() { let dx = mouse.x - this.activePos.x, dy = mouse.y - this.activePos.y; this.activePos.x += this.direction.x; this.activePos.y += this.direction.y; if (this.activePos.x < 0 || this.activePos.x > winW) { this.direction.x *= -1; } if (this.activePos.y < 0 || this.activePos.y > winH) { this.direction.y *= -1; } }} /*-------------------- Gradient BG --------------------*/ const gradientBg = (x, y, r) => { bg = ctx.createRadialGradient(x - r / 3, y - r / 7, 0, x, y, r); bg.addColorStop(0, '#fff'); bg.addColorStop(.95, '#000'); return bg; }; /*-------------------- Distance --------------------*/ const dist = (p1, p2) => { const dx = p2.x - p1.x; const dy = p2.y - p1.y; return Math.sqrt(dx * dx + dy * dy); }; /*-------------------- Get Mouse --------------------*/ let mouse = { x: window.innerWidth / 2, y: window.innerHeight / 2, dir: '' }; const getMouse = e => { mouse = { x: e.clientX || e.pageX || e.touches[0].pageX || 0, y: e.clientY || e.pageX || e.touches[0].pageY || 0, dir: getMouse.x > e.clientX ? 'left' : 'right' }; }; ['mousemove', 'touchstart', 'touchmove'].forEach(e => { window.addEventListener(e, getMouse); }); /*-------------------- Init --------------------*/ const init = () => { console.clear(); winW = canvas.width = window.innerWidth; winH = canvas.height = window.innerHeight; ctx.globalCompositeOperation = "lighten"; Balls = []; for (let i = 0; i < maxBalls; i++) { Balls.push(new Ball()); } }; init(); /*-------------------- Animate --------------------*/ const animate = () => { ticker += .1; ctx.clearRect(0, 0, winW, winH); window.requestAnimationFrame(animate); Balls.forEach(ball => { ball.update(); ball.draw(); }); }; animate(); /*-------------------- Resize --------------------*/ window.addEventListener('resize', () => { init(); });
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>canvas背景动画-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号