radialIndicator.js的环形进度条

JavaScript011

radialIndicator.js的环形进度条,第1张

代码如下:div隐藏与显示#menus{background-color:#c4cff0}functionLayer_HideOrShow(cur_div){varcurrent=document.getElementById(cur_div)if(current.style.visibility=="hidden"){current.style.visibility="visible"}

建立两个canvas标签,先绘制底层的浅灰色圆圈背景,再绘制上层的红色进度条。

WXML代码

开始动态绘制

WXSS代码

特别注意:底层的canvas最好使用

z-index:-99;放置于底层

page { width: 100% height: 100% background-color: #fff

}.circle-box { text-align: center margin-top: 10vw

}.circle { position: absolute left: 0 right: 0 margin: auto

}.draw_btn { width: 35vw position: absolute top: 33vw right: 0 left: 0 margin: auto border: 1px #000 solid border-radius: 5vw

}

JS代码

//获取应用实例var app = getApp()var intervalvar varNamevar ctx = wx.createCanvasContext('canvasArcCir')

Page({ data: {

}, drawCircle: function () {

clearInterval(varName) function drawArc(s, e) {

ctx.setFillStyle('white')

ctx.clearRect(0, 0, 200, 200)

ctx.draw() var x = 100, y = 100, radius = 96

ctx.setLineWidth(5)

ctx.setStrokeStyle('#d81e06')

ctx.setLineCap('round')

ctx.beginPath()

ctx.arc(x, y, radius, s, e, false)

ctx.stroke()

ctx.draw()

}var step = 1, startAngle = 1.5 * Math.PI, endAngle = 0 var animation_interval = 1000, n = 60 var animation = function () { if (step

  昨天逛网页时看到有用css与js实现环形进度条的(那位博主在面试时被要求当场写出环形进度条π_π),然后就想尝试下写出来(感觉好尴尬),说实话春节后遗症真可怕 haha~

  看了网上的 三种方法 实现方式如下:

  两个clip过的半圆,边框设置颜色,左侧的用来旋转,右侧的固定不动(width:0px),当进度到达50%时, 右侧的半圆显示出来(同时左半圆和右半圆的父元素div覆盖最外层的div),左侧的半圆继续旋转 。

  可能我没说清楚,原文链接: http://blog.csdn.net/angeljsl/article/details/51208960

  使用SVGstroke-dasharray寥寥数行实现圆环loading进度效果,原文链接: http://www.zhangxinxu.com/wordpress/?p=4889

  利用path元素,使用path指令绘制扇形,原文链接: http://www.tuicool.com/articles/e2UzuaQ

  常用的path指令:

两个介绍 SVG比较详细的网址

   http://www.w3cplus.com/css3/using-making-sense-of-clip-path.html

   http://www.mb5u.com/HTML5/html5_96413.html

  核心就是使用-webkit-clip-path:polygon()切割div,border-radius:50%画出圆弧