Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
canvas { position: absolute; top: 0; left: 0; cursor: crosshair; } #guiHolder { position: absolute; top: 0; left: 20px; }
JavaScript
// canvas setup // var w = c.width = window.innerWidth, h = c.height = window.innerHeight, ctx = c.getContext( '2d' ), // parameters // dotDistance = 100, dotRadius = 5, minProximity = dotDistance * 4, repaintAlpha = 1, // other values // mouse = new Dot( w/2, h/2 ), dots = [], prevDD = 0, //dotDistance, //prevDR = dotRadius, prevMP = 0, //minProximity, minProxSquared, hue = 0, templateColor = 'hsl( 0, 80%, 50% )', // gui stuff // params = [ 'dotDistance', 'dotRadius', 'minProximity', 'repaintAlpha' ], boundaries = [ [ 20, 200 ], [ 2, 9 ], [ 40, 600 ], [ 0, 1 ] ], gui = new dat.GUI( { autoPlace: false } ); // main functions // function init() { for( var i = 0; i < params.length; ++i ) gui.add( window, params[ i ], boundaries[ i ][ 0 ], boundaries[ i ][ 1 ] ); guiHolder.appendChild( gui.domElement ); considerParameters(); } function considerParameters() { if( dotDistance !== prevDD ) { prevDD = dotDistance; createDots(); } if( minProximity !== prevMP ) { prevMP = minProximity; minProxSquared = minProximity * minProximity; } render(); } function createDots() { dots.length = 0; for( var x = 0; x < w; x += dotDistance ) for( var y = 0; y < h; y += dotDistance ) dots.push( new Dot( x, y ) ); } function updateMouse( e ) { mouse.x = e.clientX; mouse.y = e.clientY; hue = ( ( mouse.x / w + mouse.y / h ) * 360 ) % 360; templateColor = 'hsl( hue, 80%, brightness% )' .replace( 'hue', hue ); render(); } function render( ) { ctx.fillStyle = 'rgba(0, 0, 0, alp)' .replace( 'alp', repaintAlpha ); ctx.fillRect( 0, 0, w, h ); dots.map( function( dot ) { dot.render(); } ); } // dot constructor // function Dot( x, y ){ this.x = x; this.y = y; } Dot.prototype.render = function() { var dX = this.x - mouse.x, // distance X dY = this.y - mouse.y, // distance Y distSquared = dX * dX + dY * dY; if( distSquared <= minProxSquared ) { var brightness = 50 - distSquared / minProxSquared * 40; ctx.fillStyle = ctx.strokeStyle = templateColor.replace( 'brightness', brightness ); ctx.beginPath(); ctx.arc( this.x, this.y, dotRadius, 0, Math.PI * 2 ); ctx.fill(); ctx.beginPath(); ctx.moveTo( this.x, this.y ); ctx.lineTo( mouse.x, mouse.y ); ctx.stroke(); } else { ctx.fillStyle = '#222'; ctx.beginPath(); ctx.arc( this.x, this.y, dotRadius, 0, Math.PI * 2); ctx.fill(); } } // document handlers // window.addEventListener( 'mousemove', updateMouse ); guiHolder.addEventListener( 'mousemove', considerParameters ); window.addEventListener( 'resize', function(){ w = c.width = window.innerWidth; h = c.height = window.innerHeight; createDots(); render(); }) // blast off // init();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>粘在网格上-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号