建立两个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 interval;var varName;var ctx = wxcreateCanvasContext('canvasArcCir');
Page({ data: {
}, drawCircle: function () {
clearInterval(varName); function drawArc(s, e) {
ctxsetFillStyle('white');
ctxclearRect(0, 0, 200, 200);
ctxdraw(); var x = 100, y = 100, radius = 96;
ctxsetLineWidth(5);
ctxsetStrokeStyle('#d81e06');
ctxsetLineCap('round');
ctxbeginPath();
ctxarc(x, y, radius, s, e, false);
ctxstroke()
ctxdraw()
} var step = 1, startAngle = 15 MathPI, endAngle = 0; var animation_interval = 1000, n = 60; var animation = function () { if (step
/
Convert an image
to a base64 string
@param {String} url
@param {Function} callback
@param {String} [outputFormat=image/png]
/
function convertImgToBase64(url, callback, outputFormat){
var canvas = documentcreateElement('CANVAS'),
ctx = canvasgetContext('2d'),
img = new Image;
imgcrossOrigin = 'Anonymous';
imgonload = function(){
var dataURL;
canvasheight = imgheight;
canvaswidth = imgwidth;
ctxdrawImage(img, 0, 0);
dataURL = canvastoDataURL(outputFormat);
callbackcall(this, dataURL);
canvas = null;
};
imgsrc = url;
}
这个方法试试吧!!!!
方法只有一个:
通过canvas的方式,在画布上画图
步骤:
1、定义一个canvas
2、获取canvas,然后通过画图
示例:canvas 元素来显示一个红色的矩形
<canvas id="myCanvas"></canvas>//定义一个canvas<script type="text/javascript">
var canvas=documentgetElementById('myCanvas');//获取canvas
var ctx=canvasgetContext('2d');
ctxfillStyle='#FF0000'; //图形填充色
ctxfillRect(0,0,80,100); //绘制一个红色矩形
</script>
直接上代码:
var img = "imgurl";//imgurl 就是你的路径
function getBase64Image(img) {
var canvas = documentcreateElement("canvas");
canvaswidth = imgwidth;
canvasheight = imgheight;
var ctx = canvasgetContext("2d");
ctxdrawImage(img, 0, 0, imgwidth, imgheight);
var ext = imgsrcsubstring(imgsrclastIndexOf("")+1)toLowerCase();
var dataURL = canvastoDataURL("image/"+ext);
return dataURL;
}
var image = new Image();
imagesrc = img;
imageonload = function(){
var base64 = getBase64Image(image);
consolelog(base64);
}
问题:使用 koa-bodyparser 可以解析post提交的问题,但是发现获取不到formdata上传的文件。
后经查资料,改用 koa-body 解决:
constkoaBody = require('koa-body'); appuse(koaBody({ multipart:true, formidable: { maxFileSize:20010241024//设置上传文件大小最大限制,默认2M} }))
然后就可以在 ctxrequestfiles 里面获取到上传的 文件信息了。ctxrequestfiles 为一个对象,里面包含一个 file 字段(为你前端上传定义的值),值为文件信息,主要是文件name和path,path为临时存储路径。
二、解析xlsx文件信息
主要使用模块 node-xlsx :npm i xlsx --save
1、加载模块
使用模块:fs--主要用于写入文件;node-xlsx主要用于转换xlsx数据和读取xlsx的文件数据;
constfs = require('fs')constxlsx = require('node-xlsx');//读写xlsx的插件
2、读取功能
读取功能相对简单,直接使用模块的 prase(路径) 方法就能读取
let list = xlsxparse("/doc/helloxlsx");
返回结果,name:表名,data:二维数组。(由于Excel以表格的形式表示,因此表格的数据都是通过二维数组进行接收。)
需要注意的是:data里的第一行数组为表头的信息
[ { name:'firstSheet', data: [ [Array], [Array] ] }, { name:'secondSheet', data: [ [Array], [Array] ] } ]
3、写入功能
写入功能,对应的写入数据与上面读取功能的返回格式需要一致,以数组的形式,name:表名,data:二维数组(Excel每行每列的数据)
如下面代码,生成一个Excel文件,分别两张表,表名分别是firstSheet,secondSheet
let xlsxObj =[ { name:'firstSheet', data: [ [1,2,3], [4,5,6] ], }, { name:'secondSheet', data: [ [7,8,9], [10,1,12] ], } ]
生成Excel文件:
fswriteFileSync(路径,Buffer数据)
xlsxbuild(xlsxObj) 会将数组转换为Buffer数据
执行下面代码就会生成对应的Excel文件
fswriteFileSync('/doc/helloxlsx', xlsxbuild(xlsxObj),"binary")
哥哥你也把代码给缩进一下啊,看着好累的
Mglydiff = function (lhs, rhs, options){var opts = jQueryextend({
ignorews : false
}, options);
thiscodeify = new MglyCodeifyText({
lhs : lhs,
rhs : rhs,
options : opts
});
var lhs_ctx = {codes : thiscodeifygetCodes('lhs'),modified : {}};
var rhs_ctx = {codes : thiscodeifygetCodes('rhs'),modified : {}};
var max = (lhs_ctxcodeslength + rhs_ctxcodeslength + 1);
var vector_d = Array(2 max + 2);
var vector_u = Array(2 max + 2);
this_lcs(lhs_ctx, 0, lhs_ctxcodeslength, rhs_ctx, 0, rhs_ctxcodeslength, vector_u, vector_d);
this_optimize(lhs_ctx);
this_optimize(rhs_ctx);
thisitems = this_create_diffs(lhs_ctx, rhs_ctx);//items中存放创建的差异信息
};
还有你的代码没有复制齐全。很多方法没有复制过来
以上就是关于圆形进度条的音乐播放,微信小程序js怎么写全部的内容,包括:圆形进度条的音乐播放,微信小程序js怎么写、JS 截取图片(img)标签中一块区域的内容转为base64编码、Javascript如何在网页上实现画图功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)