画布做加载动画!

2 篇文章 0 订阅
1 篇文章 0 订阅

html

<html>
    <head>
    <meta charset='UTF-8'>
    <script src="http://www.oxcoder.com/sys/js/libs/jquery-1.11.0.min.js"></script>
    </head>
    <body>
        <canvas id='canvas'></canvas>
    </body>
</html>

js

<script>
    (function(){
    var canvas=$('canvas');//获取画布标签
    var cav=canvas.getContext('2d');//设置画布2维场景
    var num=0;//声明角度控制器变量
    //现在我们用定时器来启动咱们的程序,查看效果
    setInterval(function(){
        num++;
        //因为我把圆 360度分成了 100份,也是方便计算,所以只需要判断它是否大于 100
        if(num>100){
            num=0;
        }
        jindutiao(canvas,cav,100,100,50,50,40,num);
    },100)
})()
/*参数,
canvas 表示html 的画布对象,
cav  表示画布场景对象,
width  表示你要设置的画布的宽度,
height  表示你要设置的画布高度,
x  表示你要绘制的圆心在画布的横向坐标值,
y  表示你要绘制的圆心在画布的纵向坐标值,
r  表示你要绘制的圆的半径,
move_r  加载进度的角度*/
function  jindutiao(canvas,cav,width,height,x,y,r,move_r){
canvas.setAttribute('width',width);//设置画布宽度
canvas.setAttribute('height',height);//设置画布高度
cav.clearRect(0,0,canvas.Width,canvas.Height);//清楚画布,从新绘制
//绘制动画路径
cav.beginPath();
cav.lineWidth=10;//设置当前路径的宽度(粗细)
cav.strokeStyle='#cccccc';//设置笔触颜色
//arc()方法创建弧/曲线(用于创建圆或部分圆),参数分别是(圆心X坐标,圆心Y坐标,半径,圆的开始角度,圆的结束角度)
cav.arc(x,y,r,0,2*Math.PI);
cav.stroke();//绘制
//绘制加载进度
cav.beginPath();
cav.lineWidth=10;
cav.strokeStyle='red';
cav.arc(x,y,r,-90*Math.PI/180,(move_r*3.6-90)*Math.PI/180);
cav.stroke();
//绘制进度提示文字
cav.font='20px Arial';
cav.fillStyle='#747474';
cav.textBaseline='middle';
cav.textAlign='center';
cav.fillText(move_r+'%',x,y);
}

</script>

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的粒子动画的 HTML、CSS、JavaScript 源码示例: ```html <!DOCTYPE html> <html> <head> <title>粒子动画</title> <style> body { margin: 0; padding: 0; background-color: #111; } #canvas { display: block; position: absolute; top: 0; left: 0; z-index: -1; } </style> </head> <body> <canvas id="canvas"></canvas> <script> // 创建粒子对象 function Particle(x, y, radius) { this.x = x; this.y = y; this.radius = radius; this.color = 'white'; this.speed = { x: -1 + Math.random() * 2, y: -1 + Math.random() * 2 }; this.gravity = 0.01; this.friction = 0.99; } // 更新粒子的位置和速度 Particle.prototype.update = function() { this.speed.x *= this.friction; this.speed.y *= this.friction; this.speed.y += this.gravity; this.x += this.speed.x; this.y += this.speed.y; }; // 绘制粒子 Particle.prototype.draw = function(ctx) { ctx.beginPath(); ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2); ctx.fillStyle = this.color; ctx.fill(); }; // 创建画布和粒子 function createCanvas() { var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var particles = []; var width = window.innerWidth; var height = window.innerHeight; var particleNum = 100; canvas.width = width; canvas.height = height; // 初始化粒子 for (var i = 0; i < particleNum; i++) { particles.push(new Particle(width / 2, height / 2, Math.random() * 2)); } // 绘制和更新粒子 function draw() { ctx.clearRect(0, 0, width, height); for (var i = 0; i < particles.length; i++) { var particle = particles[i]; particle.update(); particle.draw(ctx); } requestAnimationFrame(draw); } draw(); } // 页面完成后创建画布和粒子 window.onload = function() { createCanvas(); }; </script> </body> </html> ``` 以上代码中,通过 HTML 中的 `canvas` 元素来创建画布,并通过 JavaScript 中的 `Particle` 对象来创建粒子。在 `Particle` 对象中,通过 `update` 函数来更新粒子的位置和速度,通过 `draw` 函数来绘制粒子。在 `createCanvas` 函数中,初始化粒子并绘制和更新粒子。此外,通过 `window.onload` 来监听页面完成事件,当页面完成后创建画布和粒子。你可以根据需要修改代码中的粒子数量、颜色、速度等参数来实现不同的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值