canvas横排竖排显示数字
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>fillText Auto-wrap</title> </head> <body> <div>--------横排处理--------</div> <br> <canvas id="mycanvasL">您的浏览器不支持canvas。</canvas> <br> <textarea id="inputL" row="6" col="60" placeholder="请输入电话号码" style="width:300px;height: 60px;"></textarea> <br> <div>--------竖排处理--------</div> <br> <canvas id="mycanvas">您的浏览器不支持canvas。</canvas> <br> <textarea id="input" row="6" col="60" placeholder="请输入电话号码" style="width:300px;height: 60px;"></textarea> </body> </html> <script> // 横排处理 function writeTextOnCanvasL(name) { var cns = document.getElementById('mycanvasL'); var ctx = cns.getContext("2d"); cns.width = '800'; cns.height = '100' ctx.font = "80px 微软雅黑"; ctx.fillStyle = "#000"; ctx.fillText(name,10,80); } // writeTextOnCanvasL('88100000'); document.getElementById("inputL").onkeyup = function() { // 88100000 writeTextOnCanvasL(this.value); } // 竖排处理 function writeTextOnCanvas(name) { var cns = document.getElementById('mycanvas'); var ctx = cns.getContext("2d"); cns.width = '100'; cns.height = '660' // ctx.width = '100'; // ctx.height = '800'; // let name = name; // 文本内容 let x = 10,y=100; // 文字开始的坐标 let letterSpacing = 20; // 设置字间距 for(let i = 0; i < name.length; i++){ const str = name.slice(i,i+1).toString(); if(str.match(/[A-Za-z0-9]/)&&(y<576)){ // 非汉字 旋转 ctx.font = "80px 微软雅黑"; ctx.fillStyle = "#000"; ctx.save(); ctx.translate(x,y); ctx.rotate(Math.PI/180); ctx.textBaseline = 'bottom'; ctx.fillText(str,0,0); ctx.restore(); y+=ctx.measureText(str).width+letterSpacing; // 计算文字宽度 }else if(str.match(/[\u4E00-\u9FA5]/)&&(y<576)){ // ctx.save(); // ctx.textBaseline = 'top'; // ctx.fillText(str,x,y); // ctx.restore(); // y+=ctx.measureText(str).width+letterSpacing; // 计算文字宽度 } else { } } } // writeTextOnCanvas('88100000'); document.getElementById("input").onkeyup = function() { // 88100000 writeTextOnCanvas(this.value); } </script>