html5使用canvas实现跟随光标跳动的火焰效果

本示例通过javascript使用html5的canvas元素在屏幕上显示一个跳动的火焰,火焰会跟随光标跳动

本效果的完整代码如下,把代码保存到HTML文件中打开也能查看效果,火焰会跟随光标:

nbsp;HTML>HTML5 Canvas火焰效果body{margin: 0; padding: 0;}#canvas-keleyi-com {display: block;}window.onload = function(){var keleyi_canvas = document.getElementById("canvas-kel"+"eyi-com");var ctx = keleyi_canvas.getContext("2d");var W = window.innerWidth, H = window.innerHeight;keleyi_canvas.width = W;keleyi_canvas.height = H;

var particles = [];var mouse = {};

//Lets create some particles nowvar particle_count = 100;for(var i = 0; i < particle_count; i++){particles.push(new particle());}keleyi_canvas.addEventListener('mousemove', track_mouse, false);

function track_mouse(e){mouse.x = e.pageX;mouse.y = e.pageY;}

function particle(){this.speed = {x: -2.5+Math.random()*5, y: -15+Math.random()*10};//location = mouse coordinates//Now the flame follows the mouse coordinatesif(mouse.x && mouse.y){this.location = {x: mouse.x, y: mouse.y};}else{this.location = {x: W/2, y: H/2};}//radius range = 10-30this.radius = 10+Math.random()*20;//life range = 20-30this.life = 20+Math.random()*10;this.remaining_life = this.life;//colorsthis.r = Math.round(Math.random()*255);this.g = Math.round(Math.random()*255);this.b = Math.round(Math.random()*255);}

function draw(){ctx.globalCompositeOperation = "source-over";ctx.fillStyle = "black";ctx.fillRect(0, 0, W, H);ctx.globalCompositeOperation = "lighter";

for(var i = 0; i < particles.length; i++){var p = particles[i];ctx.beginPath();p.opacity = Math.round(p.remaining_life/p.life*100)/100var gradient = ctx.createRadialGradient(p.location.x, p.location.y, 0, p.location.x, p.location.y, p.radius);gradient.addColorStop(0, "rgba("+p.r+", "+p.g+", "+p.b+", "+p.opacity+")");gradient.addColorStop(0.5, "rgba("+p.r+", "+p.g+", "+p.b+", "+p.opacity+")");gradient.addColorStop(1, "rgba("+p.r+", "+p.g+", "+p.b+", 0)");ctx.fillStyle = gradient;ctx.arc(p.location.x, p.location.y, p.radius, Math.PI*2, false);ctx.fill();

p.remaining_life--;p.radius--;p.location.x += p.speed.x;p.location.y += p.speed.y;

if(p.remaining_life < 0 || p.radius < 0){particles[i] = new particle();}}}

setInterval(draw, 86);}

登录后复制

以上就是html5使用canvas实现跟随光标跳动的火焰效果的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3124292.html

(0)
上一篇 2025年3月29日 19:09:19
下一篇 2025年2月22日 23:11:09

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • canvas实现动态小球重叠的效果代码

    在javascript运动系列中,详细介绍了各种运动,其中就包括碰壁运动。但是,如果用canvas去实现,却是另一种思路。本文将详细介绍canvas动态小球重叠效果。下面一起来看下吧 前面的话 在javascript运动系列中,详细介绍了各…

    编程技术 2025年3月29日
    100
  • 使用canvas实现迷宫游戏

    这篇文章主要介绍了关于使用canvas实现迷宫游戏,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前言 (最近设计模式看的有点头大,一直面对纯js实在是有些枯燥-_-。所以写一点有趣的东西调剂一下)现在canvas已经不算新…

    编程技术 2025年3月29日
    100
  • 使用h5 canvas实现时钟的动态效果

    canvas 绘制好时钟界面,使用定时器定时重绘整个canvas,就实现了仿真动态时钟的效果。 难点在于: 秒钟刻度和时钟刻度的绘制 整点文字沿着内边圆形环绕 其中刻度的环绕并不难计算,文字的环绕就比较坑爹了,canvas绘制的文字是在绘制…

    2025年3月29日
    100
  • canvas原生实现前端网页移动端签名

    这篇文章给大家介绍的文章内容是关于canvas原生实现前端网页移动端签名,适用于vue.js react 等任何框架,有很好的参考价值,希望可以帮助到有需要的朋友。 let c = document.getElementById(“canv…

    编程技术 2025年3月29日
    100
  • canvas如何实现二维码和图片合成的代码

    这篇文章主要介绍了关于canvas如何实现二维码和图片合成的代码,内容有一定的参考价值,希望可以帮助到有需要的朋友。 上个版本接到一个需求,使用url生成一个二维码,然后和另外一张图片合成一张图。实现思路是这样的 使用jr-qrcode将u…

    编程技术 2025年3月29日
    100
  • HTML5 canvas实现画图程序(附代码)

    这篇文章给大家介绍的内容是关于html5 canvas实现画图程序(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 项目简介 整个项目分为两大部分 场景场景负责canvas控制,事件监听,动画处理 精灵精灵则指的是…

    编程技术 2025年3月29日
    100
  • html5中globalCompositeOperation属性的详细介绍

    本篇文章给大家带来的内容是关于css3中background-orgin的使用方法(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 globalcompositeoperation的默认值属性是source-ove…

    2025年3月29日 编程技术
    100
  • html5 canvas粒子形成下雪背景的效果

    本篇文章给大家带来的内容是关于html5 canvas粒子形成下雪背景的效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 nbsp;html>canvas粒子形成下雪背景    body{        margi…

    编程技术 2025年3月29日
    100
  • canvas实现二维码和图片合成的示例代码

    这篇文章主要介绍了canvas实现二维码和图片合成的示例代码的相关资料,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 实现思路是这样的 使用jr-qrcode将url生成data:base64供img使用 然后使用can…

    编程技术 2025年3月29日
    100
  • canvas实现图片涂鸦功能(附代码)

    本篇文章给大家带来的内容是关于canvas实现图片涂鸦功能(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 需求 需要对图片进行标注,导出图片。 需要标注N多图片最后同时保存。 需要根据多边形区域数据(区域、颜色、…

    编程技术 2025年3月29日
    100

发表回复

登录后才能评论