canvas实现可跟鼠标移动的动画粒子效果
<canvas id='canv'></canvas> <!-- 推荐开源CDN来选取需引用的外部JS //--> <script type="text/javascript" src="http://cdn.gbtags.com/jquery/1.11.1/jquery.min.js"></script>
@import url(http://fonts.googleapis.com/css?family=Righteous); body { width: 100%; margin: 0; overflow: hidden; cursor: move; background: hsla(0, 0%, 10%, 1); }
window.requestAnimFrame = (function() { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60); }; })(); c = document.getElementById('canv'), $ = c.getContext('2d'); var w = c.width = window.innerWidth; var h = c.height = window.innerHeight; var rnd = function(min, max) { return Math.random() * (max - min) + min; } var arr = []; var num = rnd(50, 150) var s = 1; var ms = { x: 0, y: 0 }; var vel = 2; var rng = rnd(30, 50); _x = w / 2; _y = h / 2; var u = 0; var set = function() { for (var i = 0; i < num; i++) { circs(); } run(); } var run = function() { window.requestAnimationFrame(run); upd(); } var circs = function() { arr.push({ x: _x, y: _y, v: { x: (Math.random() * vel) * 4 - vel, y: (Math.random() * vel) * 4 - vel } }); } var upd = function() { clear(); for (var i in arr) { arr[i].x += arr[i].v.x; arr[i].y += arr[i].v.y; if (arr[i].x > w + rng || arr[i].x - 5 < 0 - rng) { arr.splice(i, 1); circs(); } if (arr[i].y > h + rng || arr[i].y < 0 - rng) { arr.splice(i, 1); circs(); } var dx = arr[i].x - w / 2; var dy = arr[i].y - h / 2; sqr = Math.sqrt(dx * dx + dy * dy); sc = Math.max((sqr / 20), 1); var dx2 = (_x + (ms.x - _x) / 12); var dy2 = (_y + (ms.y - _y) / 12); arr[i].x += dx2 - _x; arr[i].y += dy2 - _y; $.fillStyle = 'hsla(' + i / 105* (u) + ', 95%, 60%, .8)'; $.beginPath(); $.arc(arr[i].x, arr[i].y, s * sc, 0, Math.PI * 2, true); $.closePath(); $.fill(); } } var clear = function() { $.globalCompositeOperation = 'source-over'; $.fillStyle = 'hsla(0,0%,10%,1)'; $.beginPath(); $.rect(0, 0, w, h); $.closePath(); $.fill(); var t1 = "GBTAGS".split("").join(String.fromCharCode(0x2004));; $.font = 2.5 + "em 'Righteous', cursive"; $.fillStyle = 'hsla(' + u / 5 * 12 + ', 95%, 60%, .8)'; $.fillText(t1, ms.x - $.measureText(t1).width / 2, ms.y); } window.addEventListener('mousemove', function(e) { ms.x = e.pageX - c.offsetLeft; ms.y = e.pageY - c.offsetTop; u -= .3; }, false); window.addEventListener('mousedown', function(e) { _x = ms.x; _y = ms.y; u -= .3; }, false); window.addEventListener('touchmove', function(e) { ms.x = e.touches[0].pageX - c.offsetLeft; ms.y = e.touches[0].pageY - c.offsetTop; u -= .3; e.preventDefault(); }, false); window.addEventListener('touchstart', function(e) { _x = ms.x; _y = ms.y; u -= .3; e.preventDefault(); }, false); window.addEventListener('resize', function() { c.width = w = window.innerWidth; c.height = h = window.innerHeight; }, false); clear(); set();
.
相关推荐
在这个“HTML5 Canvas鼠标移动圆点粒子跟随动画特效”中,我们看到一个创新且引人入胜的互动设计,用户可以通过鼠标移动来控制页面上的圆点粒子运动,实现了视觉与交互的完美融合。 首先,我们需要理解Canvas的基本...
通过JavaScript的事件处理和Canvas的绘图能力,实现了粒子跟随鼠标移动的动画,为网页添加了动态和趣味性。这个项目展示了Web开发中的创新和动态图形的潜力,对于学习和掌握前端技术,尤其是Canvas和JavaScript的...
本资源“html5 canvas制作鼠标移动粒子光标动画特效源码.zip”提供了一种利用Canvas实现的粒子光标动画效果,这种效果通常用于提升网站的视觉吸引力和用户体验。 首先,Canvas是HTML5的一个核心元素,通过...
HTML5 Canvas是Web开发中的一个强大工具,它允许开发者在网页上进行动态图形绘制,创造出丰富的视觉体验。在这个场景中,我们关注的是如何...通过分析和学习这个代码,你可以进一步掌握Canvas和粒子效果的实现技巧。
在这个"Canvas鼠标移动粒子动画特效"中,我们主要会关注以下几个关键知识点: 1. **Canvas基础**: - Canvas是一个HTML元素,通过JavaScript来绘制图形。它通过`<canvas>`标签在HTML文档中定义。 - `canvas....
近期我们分享了很多关于HTML5 Canvas的炫酷动画,大部分都是粒子相关动画,比如这款HTML5 Canvas鼠标滑过粒子挤压动画和HTML5 Canvas 3D绿色粒子动画都非常不错。这次要介绍的同样是一款基于Canvas的HTML5粒子动画,...
【标题】中的“基于html5 canvas实现的跟随鼠标圆点粒子发散动画特效”是一个前端开发项目,它利用HTML5的Canvas元素来创建一个交互式的视觉效果。Canvas是HTML5中用于绘制图形的一个强大功能,它允许开发者通过...
这款“html5 canvas鼠标圆点粒子交互式动画特效”利用了Canvas API来创建一个炫酷的视觉体验,用户可以通过鼠标点击和移动与动画进行互动。 1. **HTML5 Canvas基础** HTML5 Canvas是一个基于矢量图形的画布元素,...
"Canvas鼠标移动粒子效果动画"是一个利用Canvas API实现的交互式网页特效,用户可以通过鼠标移动来控制粒子的动态行为,营造出视觉上的趣味性。在这个项目中,我们将探讨以下几个关键的技术点: 1. **Canvas基本...
综上,"Canvas鼠标移动粒子动画特效.rar"是一个结合了HTML5 Canvas、JavaScript和可能的CSS技术的项目,通过粒子动画实现了与用户交互的视觉效果,具有较高的可定制性和二次开发潜力。学习和理解这个特效可以帮助...
这个“HTML5 canvas实现圆圈光标粒子响应鼠标移动动画特效源码”是一个利用canvas实现的独特视觉效果,它可以将用户的鼠标光标转化为一个动态的、由粒子组成的圆圈,随着鼠标移动而变化,为网页增添互动性和视觉吸引...
4. 实现一个更新粒子状态的函数,该函数在每次动画帧时调用,使用`requestAnimationFrame`来平滑动画效果。 5. 在Canvas上绘制粒子,根据粒子的状态更新其位置和样式。 6. 可能需要考虑交互性,比如用户可以通过鼠标...
在这个特定的“html5 canvas鼠标点击拖动粒子动画特效”项目中,我们将探讨如何利用Canvas API来实现这样的效果。 首先,Canvas API提供了一系列方法,如`fillRect()`、`strokeRect()`、`beginPath()`、`moveTo()`...
在实际代码中,可能会有一个主循环,如`gameLoop`,在这个循环中处理粒子的移动、碰撞检测(如果有的话)、碰撞后的效果,以及对鼠标点击的响应。粒子的运动可以是随机的,也可以根据物理规则,比如重力或斥力。 ...
这种效果通过JavaScript和HTML5的canvas元素实现,使得粒子随着用户鼠标移动而动态变化,创造出独特的交互式背景。 首先,`canvas`是HTML5的一个重要组成部分,它提供了一个二维绘图环境,允许开发者直接在网页上...
在这个“HTML5 Canvas实现很酷的鼠标精灵粒子交互动画特效源码”中,我们可以深入理解Canvas的一些核心特性以及如何利用它们来创建交互式的粒子动画。 首先,Canvas是一个基于矢量图形的API,通过JavaScript进行...
本资源“HTML5鼠标移动光束粒子动画特效.zip”提供了一种利用HTML5 Canvas元素来实现的独特视觉效果。Canvas是HTML5中的一个核心特性,允许开发者在网页上进行2D绘图,提供了丰富的图形绘制能力。 在这个特效中,...
在这个特定的项目中,"html5 Canvas实现可响应鼠标移动带爆破效果的雨滴下落动画源码.zip" 提供了一个使用HTML5 Canvas技术构建的互动动画,当鼠标在画布上移动时,雨滴会显示出爆破效果。这个动画效果通常用于提升...