日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

canvas三环加载进度条

發(fā)布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 canvas三环加载进度条 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前做了一個三個圓形疊加在一起的加載,用的是定位和cile來操作,但是加載的頭部不能是圓形。后來用canvas做了一個,但是這個加載的進(jìn)度不好調(diào)整,原理很簡單,就是讓一個圓,按照圓形軌跡進(jìn)行運(yùn)動就可以了,也不需要擦除運(yùn)動軌跡,就像是進(jìn)度加載一樣。不多說,直接上代碼:

結(jié)構(gòu)很簡單:一個canvas就搞定

<canvas id="c1" width="200" height="200">
  <span>您的瀏覽器版本過低了,不支持canvas</span>
</canvas>

主要是樣式,樣式用的很簡單,也很復(fù)雜,簡單就是看的清楚,復(fù)雜是沒有復(fù)用,代碼寫的過多了

<style>
  body{text-align: center;}
  canvas{background: #fff;}
  span{color: #fff;font-size: 50px;}
</style>

<script>
function d2a(n){
return n*Math.PI/180;
}
window.οnlοad=function(){
var oC=document.getElementById('c1');
var gd=oC.getContext('2d'); //畫筆

gd.lineWidth=20;
var angle = 0.01;

function draw(){
//最內(nèi)
gd.beginPath();
gd.fillStyle='red';
gd.strokeStyle="#5a7a7c";

gd.arc(100,100,50,d2a(0),d2a(360),false);
gd.stroke();


/*gd.beginPath();
gd.strokeStyle="#0ad5e2";
gd.arc(100,100,50,d2a(-90),d2a(-80),false);
gd.stroke();*/

setInterval(function(){
var x=100;
var y=100;
angle += 0.03;
var s = Math.sin(angle);
var c = -Math.cos(angle);
gd.beginPath();
gd.fillStyle="#0ad5e2";
gd.arc(x+(s*50),y+(c*50),10,0,2*Math.PI,false);
gd.fill();
},300)

//中間
gd.beginPath();
gd.strokeStyle="#d78f0b";
gd.arc(100,100,70,d2a(0),d2a(360),false);
gd.stroke();

/*gd.beginPath();
gd.strokeStyle="#ffff00";
gd.arc(100,100,70,d2a(-90),d2a(-80),false);
gd.stroke();*/
setInterval(function(){
var x=100;
var y=100;
angle += 0.01;
var s = Math.sin(angle);
var c = -Math.cos(angle);
gd.beginPath();
gd.fillStyle="#ffff00";
gd.arc(x+(s*70),y+(c*70),10,0,2*Math.PI,false);
gd.fill();
},300)
//最外
gd.beginPath();
gd.strokeStyle="#530a6e";
gd.arc(100,100,90,d2a(0),d2a(360),false);
gd.stroke();

/*gd.beginPath();
gd.strokeStyle="#8304ff";

gd.arc(100,100,90,d2a(-90),d2a(-180),6*Math.PI);
gd.stroke();*/
setInterval(function(){
var x=100;
var y=100;
angle += 0.01;
var s = Math.sin(angle);
var c = -Math.cos(angle);
gd.beginPath();
gd.fillStyle="#8304ff";
gd.arc(x+(s*90),y+(c*90),10,0,2*Math.PI,false);
gd.fill();
console.log(x+(s*90));
},300)

//小圓點
gd.beginPath();
gd.fillStyle="#fff";
gd.arc(77,55,5,0,2*Math.PI,false);
gd.fill();
};
draw();
};

代碼上完,有興趣的可以復(fù)制到編譯器上,自己運(yùn)行下效果,如果有什么問題可以留言交流。

轉(zhuǎn)載于:https://www.cnblogs.com/somejs/p/7883680.html

總結(jié)

以上是生活随笔為你收集整理的canvas三环加载进度条的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。