<html>
<head>
<style>
*{
margin: 0;
padding: 0;
}
body{
background:green;
}
#div{
position: absolute;
z-index: -1;
top:0;
}
</style>
</head>
<body>
<div id="div" style="width: 100%;height:100%"> </div> <script>
var canvas = document.createElement('canvas');
canvas.setAttribute('id', 'canvas');
canvas.width = document.body.clientWidth;
canvas.height = document.body.clientHeight;
div.appendChild(canvas);
var canvas = document.getElementById('canvas');
var particles = [];
var tick = 0;
var lineRadius = 100; function loop() {
createParticles();
updateParticles();
killParticles();
drawParticles();
drawLine();
} function createParticles() {
//check on every 10th tick check
if(tick % 10 == 0) {
if(particles.length < 100) {
particles.push({
x: Math.random()*canvas.width,
y: 0,
speed: 2+Math.random()*3, //between 2 and 5
radius: 5+Math.random()*5, //between 5 and 10
color: "white",
speed_x:Math.random()>=.5?-Math.random()*3:Math.random()*3
});
}
}
} function updateParticles() {
for(var i in particles) {
var part = particles[i];
part.y += part.speed;
part.x += part.speed_x; }
}
function killParticles() {
for(var i in particles) {
var part = particles[i];
if(part.y > canvas.height) {
part.y = 0;
}
if(part.x >= canvas.width||part.x<=0) {
part.x = Math.random()*canvas.width;
}
}
}
function drawLine(){
for(var i in particles){
var part_i = particles[i];
for (var j in particles){
if(j>i){
var part_j = particles[j];
if(square(part_i.x-part_j.x)+square(part_i.y-part_j.y)<=square(lineRadius)){
var c = canvas.getContext('2d');
c.beginPath();
c.lineWidth = .3;
c.strokeStyle = "white";
c.moveTo(part_i.x, part_i.y);
c.lineTo(part_j.x,part_j.y);
c.stroke();
c.closePath();
}
}else continue;
}
}
}
function square(x){
return x*x;
}
function drawParticles() {
var c = canvas.getContext('2d');
c.fillStyle = "green";
c.globalAlpha = 0.1;
c.fillRect(0,0,canvas.width,canvas.height);
for(var i in particles) {
var part = particles[i];
var radialGradient = c.createRadialGradient(part.x,part.y,part.radius/4,part.x,part.y,part.radius);
radialGradient.addColorStop(0,'rgba(255,255,255,.8)');
radialGradient.addColorStop(.5,'rgba(255,255,255,.5)');
radialGradient.addColorStop(1,'rgba(255,255,255,.3)');
c.beginPath();
c.arc(part.x,part.y, part.radius, 0, Math.PI*2);
c.closePath();
c.fillStyle = radialGradient;
c.fill();
}
} setInterval(loop,30); </script>
</body>
</html>

  这个

globalAlpha很有意思,设置值时移动的 小点会出现 尾巴,值越小 尾巴越长,像.....

canvas 的一些效果的更多相关文章

  1. 使用Canvas实现动画效果 | DKlogs -- 设计 | 生活

    使用Canvas实现动画效果 | DKlogs -- 设计 | 生活 使用Canvas实现动画效果

  2. canvas实现倒计时效果示例(vue组件内编写)

    前言: 此事例是在vue组件中,使用canvas实现倒计时动画的效果.其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了 canvas动画的原理:利用定时器,给 ...

  3. 原生js实现canvas气泡冒泡效果

    说明: 本文章主要分为ES5和ES6两个版本 ES5版本是早期版本,后面用ES6重写优化的,建议使用ES6版本. 1, 原生js实现canvas气泡冒泡效果的插件,api丰富,使用简单2, 只需引入J ...

  4. canvas/CSS仪表盘效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. canvas弹动效果

    弹动效果,用物体与目标的距离乘上系数再累加至速度上,让物体呈加速度运动,再让速度乘与摩擦力系数,让物体最终停止运动 代码如下所示 var canvas = document.getElementByI ...

  6. 用Canvas制作剪纸效果

    在做剪纸效果之前,先介绍剪纸效果运用到的一些知识: 1.阴影: 在Canvas之中进行绘制时,可以通过修改绘图环境中的如下4个属性值来指定阴影效果: shadowColor:CSS格式的颜色字串.默认 ...

  7. HTML5之Canvas时钟(网页效果--每日一更)

    今天,带来的是使用HTML5中Canvas标签实现的动态时钟效果. 话不多说,先看效果:亲,请点击这里 众所周知,Canvas标签是HTML5中的灵魂,HTML5 Canvas是屏幕上的一个由Java ...

  8. 【HTML5】Canvas 实现放大镜效果

    图片放大镜 效果 在线演示    源码 原理 首先选择图片的一块区域,然后将这块区域放大,然后再绘制到原先的图片上,保证两块区域的中心点一致, 如下图所示: 初始化 <canvas id=&qu ...

  9. Canvas的下雪效果

    cfs.snow.js canvas 下雪场景 不会影响页面使用 使用方式非常简单 利用这个js文件,我们就能很快的让页面出现下雪的动画效果. 例如 <script type="tex ...

  10. 使用canvas实现擦除效果

    HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像.画布是一个矩形区域,您可以控制其每一像素.canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. html ...

随机推荐

  1. chrome的常用快捷键和命令

    常见快捷键 F12 打开Chrome控制台 Ctrl+J 进入"下载内容"页面 Ctrl+H 查看"历史记录"页面 Ctrl+D 将此页加入书签 Ctrl+F ...

  2. linux下配置安装python3

    一.首先,官网下载python3的所需版本. wget https://www.python.org/downloads/release/python-360/Python-3.6.0.tgz 想下载 ...

  3. 扒一扒自从买了kindle后看的书

    一.<性别战争> 讲述的是动物界各类动物的xxx(你懂的),以动物拟人化的口吻来进行问答,十分的生动形象,虽说和自己的生活没有多大联系,但是偶尔了解一下,也是意外的不错的感觉. 二.< ...

  4. 手把手教你写Sublime中的Snippet

    手把手教你写Sublime中的Snippet Sublime Text号称最性感的编辑器, 并且越来越多人使用, 美观, 高效 关于如何使用Sublime text可以参考我的另一篇文章, 相信你会喜 ...

  5. 慕课网__css_ float

  6. kali更新源

    原文链接:http://www.cnblogs.com/dunitian/p/4712852.html kali2.0官方下载地址: https://www.kali.org/downloads/ 可 ...

  7. Swift函数的定义

    //: Playground - noun: a place where people can play import Cocoa //基本的函数 //************************ ...

  8. neo4j中文社区

    关于Neo4j中文社区 官网:http://neo4j.com.cn/ Neo4j 社区为国内具影响力的 Neo4j技术社区,致力于 Neo4j 的技术研究. Neo4j 社区由一批热爱 Neo4j ...

  9. Java_ToolKit用法

    转自:http://blog.sina.com.cn/s/blog_9e4556250100z5kv.html 此类是所有 Abstract Window Toolkit 实际实现的抽象超类.Tool ...

  10. 网页边框样式与style样式部分总结

    1).border边框样式:border-style:solid 边框样式值如下: none : 无边框.与任何指定的border-width值无关 hidden : 隐藏边框.IE不支持 dotte ...