首页 > 其他分享 >Html5 canvas创意特效合集

Html5 canvas创意特效合集

时间:2022-12-20 18:35:09浏览次数:44  
标签:特效 canvas stgh ctx Html5 var 合集 Math

Canvas就像一块画布,我们可以通过调用脚本在Canvas上绘制任意形状,甚至是制作动画。本文就是收集了很多非常富有创意的一些canvas动画特效例子,这些例子都非常适合大家学习。更多源码可在在这里资源站 -源码部分预览下载 持续更新中

1.3D篝火动画特效


这款篝火特效是基于 three.js 和 canvas 制作的3D动画特效 跟我们平常野外生火烤火很像 鼠标滚轮滚动还可以放大缩小篝火

 


2.淋雨闪电特效


基于canvas的淋雨特效 和 闪电特效

 

 

```html
<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 流畅的切换登录注册表单 且带有特效

 

```html
<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.新年倒计时


马上临近圣诞和元旦了 还没有圣诞树的朋友可以查看 [圣诞合集](https://www.hereitis.cn/articleDetails/969) 下面是有关元旦倒计时的特效效果图

 


5.粒子文字特效
可自己修改默认的文字 同时还支持手动输入文字

 


6.时间动画特效
这是一款基于canvas的时间显示特效 每秒都有粒子掉落显示的动画 还是非常精美的 也适合部署在自己的网站内

 

7.粒子倒计时

粒子聚合组成的一个个数字的切换 也是很巧妙的 适合学习和作为课后练习使用

 

```html
<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.烟雾文字消散特效

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

 

```html
<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>
```

标签:特效,canvas,stgh,ctx,Html5,var,合集,Math
From: https://www.cnblogs.com/young-people/p/16994854.html

相关文章

  • Docker daemon.json 的配置项目合集
    vim/etc/docker/daemon.json{"authorization-plugins":[],"data-root":"",#设置docker运行时的根目录"dns":[],#设置容器的DNS地址......
  • Canvas学习笔记(七)变形操作
    前言大家好,我是汪小成。最近在学习Canvas。这篇文章是我学习Canvas变形操作时记的笔记,欢迎大家审阅。简介在Canvas中有如下三个基本变形操作:图形平移:translate(x,y)......
  • 前端炫酷特效合集
    我们经常在抖音上看到一些前端很酷的特效,诸如:快叫你学编程的朋友给你写一个圣诞树,看着是不是很酷炫呢?其实只要有源码,你也可以拥有哦!跟大家分享多款前端特效源码,需要的朋友......
  • 40 个超棒的免费 Bootstrap HTML5 网站模板
     ​​​​Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网......
  • HTML5&CSS3.0基础部分目录-xyphf
    [置顶]​​CSS3.0入门笔记​​[置顶]​​animate.css动画库使用方法介绍​​[置顶]​​聊一聊HTML5的表单,话说这些表单你都用过吗?​​[置顶]​​聊一聊HTML5存储......
  • 【LeetCode】题解合集(JavaScript版)
    前言:今年断断续续写了些LeetCode题目,一方面是为了一个比较现实的问题——面试,最重要的是要复习之前学习的数据结构与算法。后面有时间还会接续刷题…题解合集:题号题目题解1......
  • Demo of canvas, canvas optimization and svg
    Itusedthecanvastodrawthecurvesintheoldproject,andtheclientfeltthatitwasvague,soItriedtomakeademoaboutcanvas,canvasoptimizationan......
  • 百度前端一面必会vue面试题合集
    从0到1自己构架一个vue项目,说说有哪些步骤、哪些重要插件、目录结构你会怎么组织综合实践类题目,考查实战能力。没有什么绝对的正确答案,把平时工作的重点有条理的描述一下......
  • Canvas学习笔记(五)文本操作
    简介在Canvas中,文本操作的常用方法有:方法说明fillText()绘制实心文本strokeText()绘制空心文本measureText()获取文本长度在Canvas中,文本操作的常......
  • canvas结合vue antd 实现折线图
    <template><divclass="main"><canvasid="canvas"width="60":height="cHeight"></canvas><a-tableref="myTable":columns="columns":data-s......