利用canvas绘制正在加载的动画
来源:互联网 发布:幽魂增幅数据 编辑:程序博客网 时间:2024/05/24 08:33
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>loading</title>
</head>
<body style="overflow: hidden;background-color: rgba(0,0,0,0.1);">
<canvas id="loading">
您的浏览器不支持canvas
</canvas>
<script type="text/javascript" charset="utf-8" async defer>
window.onload=function () {
var c = document.getElementById("loading");
var ctx = c.getContext('2d');
c.width = window.innerWidth;
c.height = window.innerHeight;
var cx = c.width/2,
cy = c.height/2,
radius = 30;
var r = [3,4,4.5,5,6,7];
var angle = [10,25,45,65,90,120];
var alpha = [0.25,0.35,0.45,0.65,0.8,1];
var x=[],y=[];
function blueCircle(){
x=[];
y=[];
for(var i = 0; i < r.length; i ++){
if(angle[i]>360)
angle[i] = 0;
ctx.beginPath();
ctx.fillStyle = "rgba(125,125,255,"+alpha[i]+")";
x.push( cx + radius*Math.cos(angle[i]*Math.PI/180));
y.push( cy + radius*Math.sin(angle[i]*Math.PI/180));
ctx.arc(x[i],y[i],r[i],0,2*Math.PI, true);
ctx.closePath();
ctx.fill();
angle[i] += 5;
}
}
// requestAnimationFrame根据浏览器刷新频率循环
(function draw(){
window.requestAnimationFrame(draw);
ctx.clearRect(0,0,c.width,c.height);
blueCircle();
}())
}
</script>
</body>
</html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>loading</title>
</head>
<body style="overflow: hidden;background-color: rgba(0,0,0,0.1);">
<canvas id="loading">
您的浏览器不支持canvas
</canvas>
<script type="text/javascript" charset="utf-8" async defer>
window.onload=function () {
var c = document.getElementById("loading");
var ctx = c.getContext('2d');
c.width = window.innerWidth;
c.height = window.innerHeight;
var cx = c.width/2,
cy = c.height/2,
radius = 30;
var r = [3,4,4.5,5,6,7];
var angle = [10,25,45,65,90,120];
var alpha = [0.25,0.35,0.45,0.65,0.8,1];
var x=[],y=[];
function blueCircle(){
x=[];
y=[];
for(var i = 0; i < r.length; i ++){
if(angle[i]>360)
angle[i] = 0;
ctx.beginPath();
ctx.fillStyle = "rgba(125,125,255,"+alpha[i]+")";
x.push( cx + radius*Math.cos(angle[i]*Math.PI/180));
y.push( cy + radius*Math.sin(angle[i]*Math.PI/180));
ctx.arc(x[i],y[i],r[i],0,2*Math.PI, true);
ctx.closePath();
ctx.fill();
angle[i] += 5;
}
}
// requestAnimationFrame根据浏览器刷新频率循环
(function draw(){
window.requestAnimationFrame(draw);
ctx.clearRect(0,0,c.width,c.height);
blueCircle();
}())
}
</script>
</body>
</html>
0 0
- 利用canvas绘制正在加载的动画
- 利用UIBezierPath绘制加载动画哦
- 利用Html 5的canvas标签绘制水流和水池动画
- 利用HTML5自定义绘制正在加载图案(spinner)
- Android view利用canvas绘制动画(一)
- canvas绘制动画效果
- 利用canvas实现折线图的绘制
- 利用canvas绘制柱状图的一种方法
- 利用canvas进行一个饼形图的绘制
- AnimationDrawable 实现正在加载的旋转动画
- 利用canvas绘制钟表
- 使用Canvas绘制旋转动画
- CSS3绘制8种超炫的加载动画
- 用canvas 绘制动画时,刷新时有阴影的解决问题
- H5动画,canvas绘制圆环百分比进度的动态效果
- H5动画,canvas绘制圆环百分比进度的动态效果
- 利用Canvas绘制雷达图
- 利用HTML5的canvas标签实现灰太狼图像的绘制
- 如何降低APP卸载率?这里有七个方法
- C#调用js Eval,高效率,可以增加函数。
- 系统学习深度学习(十五)--AlexNet译文
- java中的equals
- reactNative学习
- 利用canvas绘制正在加载的动画
- 使用Akka构建集群(一)
- chromium: [ERROR:interface_registry.cc(104)] Failed to locate a binder for interface: autofill::mojo
- 解决ipad键盘浮动在屏幕中央,挡住了输入框问题
- 【实习面试】阿里&腾讯offer的点点滴滴(内附干货)2016
- 线程的生命周期
- Struts2中数据封装机制
- Delphi中强制结束一个进程
- USACO 2.2Party Lamps