JavaScript 是浏览器端脚本语言,有许多非常实用的第三方 JS 类库,我们可以借助它来实现各种各样的特效,今天为大家分享一下基于 sketch.js 实现鼠标点击特效的方法。
实现方法
实现的方法很简单,只需要以下三步就可以完成。
引入sketch.js
在 functions.php 文件中引入 sketch.min.js,文件下载地址:
https://www.bootcdn.cn/sketch.js。
添加 html 代码
然后在 body 标签中任意位置加入下面这段 HTML 代码。
<?php !wp_is_mobile()): //排除移动设备 ?> <canvas id="mineCanvas" style="position:fixed;left:0;top:0;z-index:99999999;pointer-events:none;"></canvas> <?php endif; ?>
添加 js 代码
将下面的 JS 代码添加到 footer.php 中,也可以将内容添加到 sketch.min.js 文件末尾。
<script type='text/javascript'> if(document.getElementById("clickCanvas")) { function Particle(x, y, radius) { this.init(x, y, radius); } Particle.prototype = { init : function(x, y, radius) { this.alive = true; this.radius = radius || 10; this.wander = 0.15; this.theta = random(TWO_PI); this.drag = 0.92; this.color = '#ffeb3b'; this.x = x || 0.0; this.y = y || 0.0; this.vx = 0.0; this.vy = 0.0; }, move : function() { this.x += this.vx; this.y += this.vy; this.vx *= this.drag; this.vy *= this.drag; this.theta += random(-0.5, 0.5) * this.wander; this.vx += sin(this.theta) * 0.1; this.vy += cos(this.theta) * 0.1; this.radius *= 0.96; this.alive = this.radius > 0.5; }, draw : function(ctx) { ctx.beginPath(); ctx.arc(this.x, this.y, this.radius, 0, TWO_PI); ctx.fillStyle = this.color; ctx.fill(); } }; var MAX_PARTICLES = 50; //圆点颜色库 var COLOURS = [ "#5ee4ff", "#f44033", "#ffeb3b", "#F38630", "#FA6900", "#f403e8", "#F9D423" ]; var particles = []; var pool = []; var clickparticle = Sketch.create({ container : document.getElementById('clickCanvas') }); clickparticle.spawn = function(x, y) { if (particles.length >= MAX_PARTICLES) pool.push(particles.shift()); particle = pool.length ? pool.pop() : new Particle(); particle.init(x, y, random(5, 20));//圆点大小范围 particle.wander = random(0.5, 2.0); particle.color = random(COLOURS); particle.drag = random(0.9, 0.99); theta = random(TWO_PI); force = random(1, 5); particle.vx = sin(theta) * force; particle.vy = cos(theta) * force; particles.push(particle); }; clickparticle.update = function() { var i, particle; for (i = particles.length - 1; i >= 0; i--) { particle = particles[i]; if (particle.alive) particle.move(); else pool.push(particles.splice(i, 1)[0]); } }; clickparticle.draw = function() { clickparticle.globalCompositeOperation = 'lighter'; for ( var i = particles.length - 1; i >= 0; i--) { particles[i].draw(clickparticle); } }; //按下时显示效果,mousedown 换成 click 为点击时显示效果 document.addEventListener("mousedown", function(e) { var max, j; //排除一些元素 "TEXTAREA" !== e.target.nodeName && "INPUT" !== e.target.nodeName && "A" !== e.target.nodeName && "I" !== e.target.nodeName && "IMG" !== e.target.nodeName && function() { for (max = random(15, 20), j = 0; j < max; j++) clickparticle.spawn(e.clientX, e.clientY); }(); }); } </script>
结束语
本文简单分享了一下基于 sketch.js 实现的鼠标点击特效的方法,如果大家喜欢的话可以添加到自己的网站上。引入额外的 JS 代码会影响网页的加载速度,大家可以有选择性地使用。另外,大家如果有更好的建议,欢迎在下方评论处分享。
本文已通过「原本」原创作品认证,转载请注明文章出处及链接。
1F
学习了!