canvas_进度条_html/css_WEB-ITnose
如图,进度条是逆时针画的,如何让它 顺时针
以下是我的代码
<!DOCTYPE html><html><head><title> canvas 实例 </title><meta charset='utf-8'></head><body><canvas id="myCanvas" width="600" height="150">您的浏览器不支持canvas!</canvas><br/><button onclick="Start();">Start</button><button onclick="Create();">Create</button><script type="text/javascript"> //x,y 坐标,radius 半径,process 百分比,backColor 中心颜色, proColor 进度颜色, fontColor 中心文字颜色 function DrowProcess(x,y,radius,process,backColor,proColor,fontColor){ var canvas = document.getElementById('myCanvas'); if (canvas.getContext) { var cts = canvas.getContext('2d'); }else{ return; } cts.beginPath(); // 坐标移动到圆心 cts.moveTo(x, y); // 画圆,圆心是24,24,半径24,从角度0开始,画到2PI结束,最后一个参数是方向顺时针还是逆时针 cts.arc(x, y, radius, Math.PI * 2,0, true); cts.closePath(); // 填充颜色 cts.fillStyle = backColor; cts.fill(); cts.beginPath(); // 画扇形的时候这步很重要,画笔不在圆心画出来的不是扇形 cts.moveTo(x, y); // 跟上面的圆唯一的区别在这里,不画满圆,画个扇形 cts.arc(x, y, radius, Math.PI * 1.5, Math.PI * 1.5 - Math.PI * 2 * process / 100,true); cts.closePath(); cts.fillStyle = proColor; cts.fill(); //填充背景白色 cts.beginPath(); cts.moveTo(x, y); cts.arc(x, y, radius - (radius * 0.06), 0, Math.PI * 2, true); cts.closePath(); cts.fillStyle = 'rgba(255,255,255,1)'; cts.fill(); // 画一条线// cts.beginPath();// cts.arc(x, y, radius-(radius*0.30), 0, Math.PI * 2, true);// cts.closePath();// // 与画实心圆的区别,fill是填充,stroke是画线// cts.strokeStyle = backColor;// cts.stroke(); //在中间写字 cts.font = " 20pt Arial"; cts.fillStyle = fontColor; cts.textAlign = 'center'; cts.textBaseline = 'middle'; cts.moveTo(x, y); cts.fillText(process+"%", x, y); } bfb = 0; time=0; function Start(){ DrowProcess(60,60,55,bfb,'#ddd','#EAA0C6','#A6A3A6');// DrowProcess(180,60,55,bfb,'#ddd','#e74c3c','#e74c3c');// DrowProcess(300,60,55,bfb,'#ddd','#FF7F50','#FF7F50'); t = setTimeout(Start,25); if(bfb>=100){ clearTimeout(t); bfb=0; return; } bfb+=1; } function Create(){ DrowProcess(420,60,55,25,'#ddd','#32CD32','#32CD32'); } Start(); </script></body></html>
回复讨论(解决方案)
// 画圆,圆心是24,24,半径24,从角度0开始,画到2PI结束,最后一个参数是方向顺时针还是逆时针 cts.arc(x, y, radius, Math.PI * 2,0, true);
代码上不是写了么,你改FALSE试试
// 画圆,圆心是24,24,半径24,从角度0开始,画到2PI结束,最后一个参数是方向顺时针还是逆时针 cts.arc(x, y, radius, Math.PI * 2,0, true);
代码上不是写了么,你改FALSE试试
这就是false的效果
这个可以逆时针,但我还是不知道怎么改我的代码
cts.arc(x, y, radius, Math.PI * 1.5, Math.PI * 1.5 - Math.PI * 2 * process / 100,true);
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="apple-touch-fullscreen" content="yes" /> <meta name="format-detection" content="telephone=no" /> <meta name="HandheldFriendly" content="true"> <meta http-equiv="x-rim-auto-match" content="none"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta property="og:type" content="website"> <meta property="og:image" content="75 pix image"> <meta property="og:site_name" content="South China Morning Post"> <meta property="og:description" content="Make every day matter"> <!--<meta property="fb:page_id" content="">--> <title></title> <link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow:700' rel='stylesheet' type='text/css'> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="img/apple-touch-icon-57.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="img/apple-touch-icon-72.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="img/apple-touch-icon-114.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="img/apple-touch-icon-144.png"> <link rel="icon" href="img/favicon.ico" /> <base target="_blank" /> <style type="text/css"> html {width: 100%; height: 100%;} body {width: 100%; height: 100%; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;} * {margin: 0; padding: 0;} .splash {position: absolute; z-index: 999; display: table; width: 100%; height: 100%; background-color: #f3f0eb;} .splash>.splash-inner {display: table-cell; text-align: center; vertical-align: middle;} .splash h1,.splash h2,.splash h3 {font-weight: normal;} .splash h3 {display: block; margin-top: 34px; font-size: 18px; color: #666; font-weight: lighter;} .splash .loading-circle {position: relative; width: 204px; height: 204px; margin: auto;} .splash .loading-circle>* {display: block; position: absolute; box-sizing: border-box; border-radius: 102px;} .splash .loading-circle>canvas.bg {z-index: 1; width: 100%; height: 100%; border: 8px solid #ddd ;} .splash .loading-circle>canvas.mask {z-index: 2; transform: rotate(-90deg); -webkit-transform: rotate(-90deg); -moz-transform: rotate(-90deg);} .splash .loading-circle>p {z-index: 3; width: 100%; height: 100%; text-align: center; line-height: 204px; font-size: 56px; font-weight: lighter; color: #999;} </style></head><body ontouchmove="event.preventDefault();"><div class="splash" id="splash"> <div class="splash-inner"> <h1></h1> <!--<h2 id="Make-nbsp-every-nbsp-day-nbsp-matter">Make every day matter</h2>--> <div class="loading-circle" id="loadingCircle"> <p><span id="loadedNum">0</span>%</p> <canvas class="mask" id="loadingProgress" width="204" height="204"></canvas> <canvas class="bg" width="204" height="204"></canvas> </div> </div></div><script> var slots={},c=document.getElementById('loadingProgress'),ctx=c.getContext('2d'); window.hasLoaded = 0; window.loading = false; window.ulp = ulp; function ulp(percent){ window.loading = true; var i = 0, draw = null; draw = setInterval(function(){ if (window.hasLoaded > 100) { window.loading = false; clearInterval(draw); draw = null; return true; } if (i<percent) { d(); i++; window.hasLoaded += 1; } else { clearInterval(draw); draw = null; } }, 100); } function d(){ var lp = document.getElementById('loadedNum'); lp.innerHTML = window.hasLoaded; var loaded = window.hasLoaded * 2 / 100 * Math.PI, cw = 204, hcw = 102; ctx.clearRect (0,0,cw,cw); ctx.beginPath(); ctx.arc(hcw,hcw,hcw-4, 0, loaded, false); ctx.lineWidth = 8; ctx.strokeStyle = '#ff6000'; ctx.stroke(); } ulp(67);</script></body></html>
仅改成 false 是不行的,效果不对
要这样
cts.arc(x, y, radius, Math.PI * 1.5, -3 * Math.PI * 1.5 + Math.PI * 2 * process / 100, false);

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

网页批注功能的Y轴位置自适应算法本文将探讨如何实现类似Word文档的批注功能,特别是如何处理批注之间的间�...

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

实现图片点击后周围图片散开并放大效果许多网页设计中,需要实现一种交互效果:点击某张图片,使其周围的...

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。
