Html5 canvas创意特效合集

news/2024/11/15 8:24:37/

Canvas就像一块画布,我们可以通过调用脚本在Canvas上绘制任意形状,甚至是制作动画。本文就是收集了很多非常富有创意的一些canvas动画特效例子,这些例子都非常适合大家学习。

1.3D篝火动画特效
这款篝火特效是基于 three.js 和 canvas 制作的3D动画特效 跟我们平常野外生火烤火很像 鼠标滚轮滚动还可以放大缩小篝火
在这里插入图片描述
2.淋雨闪电特效
基于canvas的淋雨特效 和 闪电特效

<body><title>Raining with Thunder</title><canvas id="canvas" width="1280" height="720"style="height: 362px; width: 643px; margin-left: 52px; margin-top: 0px;"></canvas><script id="rendered-js">var canvas = document.getElementById('canvas');var ctx = canvas.getContext('2d');var stgw = 1280;var stgh = 720;var loffset = 0;var toffset = 0;function _pexresize() {var cw = window.innerWidth;var ch = window.innerHeight;if (cw <= ch * stgw / stgh) {loffset = 0;toffset = Math.floor(ch - cw * stgh / stgw) / 2;canvas.style.width = cw + "px";canvas.style.height = Math.floor(cw * stgh / stgw) + "px";} else {loffset = Math.floor(cw - ch * stgw / stgh) / 2;toffset = 0;canvas.style.height = ch + "px";canvas.style.width = Math.floor(ch * stgw / stgh) + "px";}canvas.style.marginLeft = loffset + "px";canvas.style.marginTop = toffset + "px";}_pexresize();var count = 100;var lcount = 6;var layer = [];var layery = [];ctx.fillStyle = "rgba(255,255,255,0.5)";for (var l = 0; l < lcount; l++) {ctx.clearRect(0, 0, stgw, stgh);for (var i = 0; i < count * (lcount - l) / 1.5; i++) {var myx = Math.floor(Math.random() * stgw);var myy = Math.floor(Math.random() * stgh);var myh = l * 6 + 8;var myw = myh / 10;ctx.beginPath();ctx.moveTo(myx, myy);ctx.lineTo(myx + myw, myy + myh);ctx.arc(myx, myy + myh, myw, 0, 1 * Math.PI);ctx.lineTo(myx - myw, myy + myh);ctx.closePath();ctx.fill();}layer[l] = new Image();layer[l].src = canvas.toDataURL("image/png");layery[l] = 0;}var stt = 0;var str = Date.now() + Math.random() * 4000;var stact = false;function animate() {ctx.clearRect(0, 0, stgw, stgh);for (var l = 0; l < lcount; l++) {layery[l] += (l + 1.5) * 5;if (layery[l] > stgh) {layery[l] = layery[l] - stgh;}ctx.drawImage(layer[l], 0, layery[l]);ctx.drawImage(layer[l], 0, layery[l] - stgh);}if (Date.now() > str) {stact = true;}if (stact) {stt++;if (stt < 5 + Math.random() * 10) {var ex = stt / 30;} else {var ex = (stt - 10) / 30;}if (stt > 20) {stt = 0;stact = false;str = Date.now() + Math.random() * 8000 + 2000;}ctx.fillStyle = "rgba(255,255,255," + ex + ")";ctx.fillRect(0, 0, stgw, stgh);}window.requestAnimationFrame(animate);}animate();</script></body>

在这里插入图片描述
3.精美表单切换模板
Html5 流畅的切换登录注册表单 且带有特效
在这里插入图片描述

<body><div class="container right-panel-active"><!-- Sign Up --><div class="container__form container--signup"><form action="#" class="form" id="form1"><h2 class="form__title">Sign Up</h2><input type="text" placeholder="User" class="input" /><input type="email" placeholder="Email" class="input" /><input type="password" placeholder="Password" class="input" /><button class="btn">Sign Up</button></form></div><!-- Sign In --><div class="container__form container--signin"><form action="#" class="form" id="form2"><h2 class="form__title">Sign In</h2><input type="email" placeholder="Email" class="input" /><input type="password" placeholder="Password" class="input" /><a href="#" class="link">Forgot your password?</a><button class="btn">Sign In</button></form></div><!-- Overlay --><div class="container__overlay"><div class="overlay"><div class="overlay__panel overlay--left"><button class="btn" id="signIn">Sign In</button></div><div class="overlay__panel overlay--right"><button class="btn" id="signUp">Sign Up</button></div></div></div></div><!-- partial --><script src="./js/script.js"></script></body>

4.新年倒计时
马上临近圣诞和元旦了 还没有圣诞树的朋友可以查看 圣诞合集 下面是有关元旦倒计时的特效效果图
在这里插入图片描述
5.粒子文字特效
可自己修改默认的文字 同时还支持手动输入文字
在这里插入图片描述
6.时间动画特效
这是一款基于canvas的时间显示特效 每秒都有粒子掉落显示的动画 还是非常精美的 也适合部署在自己的网站内

在这里插入图片描述

7.粒子倒计时

粒子聚合组成的一个个数字的切换 也是很巧妙的 适合学习和作为课后练习使用
在这里插入图片描述

<body><script src="js/TweenMax.min.js"></script><canvas id="canvas-number"></canvas>
<canvas id="canvas-dots"></canvas><script src="js/script.js"></script></body>

8.烟雾文字消散特效

这是一款 跟蒸汽一样 慢慢的扩散消逝掉 不会像火焰一样只存在瞬间的美

在这里插入图片描述

<body><canvas id="myCanvas"></canvas><div class="text"><span>S</span><span>m</span><span>o</span><span>k</span><span>e</span><span>&nbsp;</span><span></span><span></span><span></span><span></span></div><script type="text/javascript" src='js/three.min.js'></script><script type="text/javascript" src='js/Stats.js'></script><script type="text/javascript" src="js/script.js"></script></body>

http://www.ppmy.cn/news/5196.html

相关文章

【如何获取文本框的输入内容 Objective-C语言】

一、如何获取文本框的输入内容 1.要想拿到文本框的输入内容,就还得拖,怎么拖呢 你需要用几个属性,和这两个文本框的输入内容相关联 然后,接下来,你在这个ViewController类中,只要访问这几个属性,就相当于是访问界面上的控件 然后访问界面上的控件,是不是就能拿到控…

【二叉树经典习题讲解】

If you find a path with no obstacles, probably doesnt lead anywhere. 目录 1 前中后序遍历一颗二叉树 2 总的结点个数 3 求叶子节点个数 4 求树的高度 5 第k层结点个数 6 二叉树的层序遍历 7 判断一棵树是否为完全二叉树 1 二叉树的前序遍历 2 单值二叉树 3 翻转二…

Android -- 每日一问:在项目中使用AsyncTask会有什么问题吗?

经典回答 那我们考查 AsyncTask 会问些什么呢&#xff1f;得先问问会不会用吧&#xff0c;看看知不知道有 onProgressUpdate 方法。 其次问一下是怎么理解 AsyncTask 的机制&#xff0c;有没有看过它的源代码&#xff1f; 这个问题主要看对方是否对 Android 的东西有好奇心&am…

HFSS使用经验三

目录 一、如何量取HFSS某一点的空间位置 二、如何快速的切换视图 三、HFSS中绘制圆柱体 四、如何修改HFSS的仿真线程数量 五、HFSS中如何选取挖空的面 六、HFSS中如何实现参数扫描 一、如何量取HFSS某一点的空间位置 右击可以点击Measure按键 鼠标放到特殊点&#xff0c…

小节练习题

练习一 String反转将abcdef反转成aedcf 编写public static String reverse(String str ,int start,int end){}方法完成 String str “abcdef”; 思路分析&#xff1a; 1.将String字符串转成char数组 2.从start下标开始到end下标结束&#xff0c;一个一个–&#xff0c;开始交…

服务器取证——服务器基础知识

目录 一、服务器基本介绍 &#xff08;一&#xff09;概念 &#xff08;二&#xff09;构成 &#xff08;三&#xff09; 种类 &#xff08;四&#xff09;与pc区别 二、 磁盘阵列RAID &#xff08;一&#xff09;概念 &#xff08;二&#xff09;产生原因 &#xff0…

react 函数式组件 react其他一些总结

1、组件获取props&#xff0c;与类组件有点不同&#xff0c;类组件有constructor直接在里面继承props 就可以&#xff0c; 函数式要在这里接 export const Record (props) > { 2、 实现类似vue的watch效果&#xff1a; 一般可以在 const componentWillReceiveProps (prop…

【自动驾驶环境感知项目】——基于Paddle3D的点云障碍物检测

文章目录1. 自动驾驶实战&#xff1a;基于Paddle3D的点云障碍物检测1.1 环境信息1.2 准备点云数据1.3 安装Paddle3D1.4 模型训练1.5 模型评估1.6 模型导出1.7 模型部署效果1. 自动驾驶实战&#xff1a;基于Paddle3D的点云障碍物检测 项目地址——自动驾驶实战&#xff1a;基于P…