JavaScript canvas繪制圓形加載進(jìn)度條
本文實(shí)例為大家分享了JavaScript canvas繪制圓形加載進(jìn)度條的具體代碼,供大家參考,具體內(nèi)容如下
1.需求:通過canvas繪制一個(gè)圓形的進(jìn)度條
2.實(shí)現(xiàn)思路:
2.1 繪制灰色底框
2.2 創(chuàng)建變量保存結(jié)束角度值和加載進(jìn)度值
2.3 創(chuàng)建定時(shí)繪制進(jìn)度條
2.3.1 修改結(jié)束角度
2.3.2 開始新路徑繪制
2.3.3 繪制加載圓環(huán)
3.實(shí)現(xiàn)過程如下:
css樣式設(shè)置
body { ? ? ? ? ? ? text-align: center; ? ? ? ? } ? ? ? ? canvas { ? ? ? ? ? ? background: #ffffff; ? ? ? ? }
4.html如下:
<canvas id="circle" width="500" height="400"></canvas>
5.js實(shí)現(xiàn)如下:
var circle = document.getElementById("circle"); ? ? ? ? var ctx = circle.getContext("2d"); ? ? ? ? //結(jié)束角度 ? ? ? ? var end = -90; ? ? ? ? // 創(chuàng)建變量,進(jìn)度值1% ? ? ? ? var load = 0; ? ? ? ? // 創(chuàng)建定時(shí)器,繪制進(jìn)度條 ? ? ? ? var timer = setInterval(function () { ? ? ? ? ? ? //每次加載前清除畫布 ? ? ? ? ? ? ctx.clearRect(0, 0, 500, 400); ? ? ? ? ? ? ctx.beginPath(); ? ? ? ? ? ? // 灰色底框 ? ? ? ? ? ? ctx.strokeStyle = "#eee"; //底框的背景顏色 ? ? ? ? ? ? ctx.lineWidth = 10; //底框的寬度 ? ? ? ? ? ? //底框顯示的位置想x,y,r,start,end ? ? ? ? ? ? ctx.arc(250, 200, 100, 0, 2 * Math.PI); ? ? ? ? ? ? ? ctx.stroke(); //繪制底框,空心圓 ? ? ? ? ? ? // 修改結(jié)束角度 ? ? ? ? ? ? end += 3.6; ? ? ? ? ? ? // 開始新的路徑 ? ? ? ? ? ? ctx.beginPath(); ? ? ? ? ? ? // 繪制新的圓環(huán) ? ? ? ? ? ? ctx.strokeStyle = "lightgreen"; ? ? ? ? ? ? ctx.lineWidth = 10; ? ? ? ? ? ? //從頂點(diǎn)位置開始 ? ? ? ? ? ? ctx.arc(250, 200, 100, -90 * Math.PI / 180, end * Math.PI / 180); ? ? ? ? ? ? ctx.stroke(); ? ? ? ? ? ? // 設(shè)置中間的文字字體和大小 ? ? ? ? ? ? ctx.font = "18px SimHei"; ? ? ? ? ? ? load++; ? ? ? ? ? ? // 設(shè)置圖形文字 ? ? ? ? ? ? ctx.fillText("已加載完成:" + load + "%", 180, 208); ? ? ? ? ? ? if (load == 100) { ? ? ? ? ? ? ? ? clearInterval(timer); ? ? ? ? ? ? } ? ? ? ? }, 200);
6.實(shí)現(xiàn)效果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript實(shí)現(xiàn)簡(jiǎn)單的倒計(jì)時(shí)效果
- JavaScript?canvas繪制動(dòng)態(tài)圓環(huán)進(jìn)度條
- JavaScript canvas實(shí)現(xiàn)環(huán)形漸變進(jìn)度條
- javascript實(shí)現(xiàn)倒計(jì)時(shí)小案例
- js實(shí)現(xiàn)酷炫倒計(jì)時(shí)動(dòng)畫
- JS前端使用canvas動(dòng)態(tài)繪制函數(shù)曲線示例詳解
- JS前端canvas交互實(shí)現(xiàn)拖拽旋轉(zhuǎn)及縮放示例
- JavaScript中的canvas?實(shí)現(xiàn)一個(gè)圓環(huán)漸變倒計(jì)時(shí)效果
相關(guān)文章
JS Html轉(zhuǎn)義和反轉(zhuǎn)義(html編碼和解碼)的實(shí)現(xiàn)與使用方法總結(jié)
這篇文章主要介紹了JS Html轉(zhuǎn)義和反轉(zhuǎn)義(html編碼和解碼)的實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式總結(jié)分析了JS Html轉(zhuǎn)義和反轉(zhuǎn)義、html編碼和解碼相關(guān)封裝類定義與具體使用技巧,需要的朋友可以參考下2020-03-03淺談JavaScript窗體Window.ShowModalDialog使用
這篇文章主要介紹了淺談JavaScript窗體Window.ShowModalDialog使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07JavaScript判斷一個(gè)變量是否是數(shù)組的五種方式總結(jié)
在 JavaScript 編程中,我們經(jīng)常需要對(duì)不同類型的變量進(jìn)行判斷和處理,其中,判斷一個(gè)變量是否是數(shù)組是一項(xiàng)基本且常見的任務(wù),在本篇博客中,我們將介紹幾種常用的方式來(lái)判斷一個(gè)變量是否是數(shù)組,并探討它們的優(yōu)缺點(diǎn)以及適用場(chǎng)景,需要的朋友可以參考下2023-11-11JavaScript中String對(duì)象的使用方法以及實(shí)例
這篇文章主要給大家介紹了關(guān)于JavaScript中String對(duì)象的使用方法以及實(shí)例的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),方便開發(fā)者在JavaScript開發(fā)中更好地處理字符串,需要的朋友可以參考下2022-04-04php實(shí)例分享之實(shí)現(xiàn)顯示網(wǎng)站運(yùn)行時(shí)間
這篇文章主要介紹了php實(shí)現(xiàn)顯示網(wǎng)站運(yùn)行時(shí)間,需要的朋友可以參考下2014-05-05window.showModalDialog參數(shù)傳遞中含有特殊字符的處理方法
程序運(yùn)行出錯(cuò)經(jīng),過檢查發(fā)現(xiàn)傳遞的數(shù)據(jù)中出現(xiàn)了#等特殊字符,瀏覽器只取到#號(hào)前面的數(shù)據(jù),后面的被截?cái)啵旅鏋榇蠹医榻B下正確的處理方法2013-06-06js遍歷詳解(forEach, map, for, for...in, for...of)
在本篇文章里小編給大家整理的是關(guān)于js中的各種遍歷(forEach, map, for, for...in, for...of)相關(guān)知識(shí)點(diǎn)用法總結(jié),需要的朋友們參考下。2019-08-08IE與firefox下Dhtml的一些區(qū)別小結(jié)
IE與Mozilla下Dhtml的一些區(qū)別小結(jié)2009-12-12