上次项目中,涉及到文字换行的问题,如图

可谓将换行做到了极致

解决方法:

将文字换行封装为一个方法

/**

* 海报文字换行

*/

fillTextWrap(ctx, text, x, y, maxWidth, lineHeight) {

// 设定默认最大宽度

const systemInfo = wx.getSystemInfoSync()

const deciveWidth = systemInfo.screenWidth

// 默认参数

maxWidth = maxWidth || deciveWidth

lineHeight = lineHeight || 20

// 校验参数

if (

typeof text !== 'string' ||

typeof x !== 'number' ||

typeof y !== 'number'

) {

return

}

// 字符串分割为数组

const arrText = text.split('')

// 当前字符串及宽度

let currentText = ''

let currentWidth

for (let letter of arrText) {

currentText += letter

currentWidth = ctx.measureText(currentText).width

if (currentWidth > maxWidth) {

ctx.fillText(currentText, x, y)

currentText = ''

y += lineHeight

}

}

if (currentText) {

ctx.fillText(currentText, x, y)

}

}

调用方法绘制文字

ctx.setFillStyle('red')

ctx.setFontSize(26)

// ctx.setTextAlign('center')

//使文字换行显示

const textHeightL = that.fillTextWrap(

ctx,

that.renderData.springScrolls.L,

50,

313-(that.renderData.springScrolls.L).length*26/2, //为了让文字垂直居中

18,

36

)

const textHeightR = that.fillTextWrap(

ctx,

that.renderData.springScrolls.R,

275,

313-(that.renderData.springScrolls.R).length*26/2,//为了让文字垂直居中

18,

36

)

OK,问题得到解决希望能帮到你们

html+canvas+输入文字换行,canvas文字换行相关推荐

  1. HTML canvas 输入文字,关于Canvas写字

    首先明确canvas是有一个font属性的.利用这个属性我们可以将输入的文字画到画布或者说是已有图片上.先进行最基本的:画布上写字. canvas写字测试 您的浏览器不支持canvas标签 var c ...

  2. html5 canvas签字,HTML5 canvas实现电子签名

    1.为什么要用到BASE64编码的图片信息Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些 ...

  3. canvas.width和canvas.style.width区别以及应用

    今天讲的内容是canvas.width和canvas.style.width的区别,在没有做canvas项目之前,其实我是并没有深入了解过这两个属性的,最近在研究canvas项目的自适应问题,尤其是在 ...

  4. Linux环境安装canvas,npm install canvas简明指南

    安装环境:Mac OSX Mavericks 要使用Node.js的canvas库,直接通过npm命令安装,通常,会得到一个编译错误: $ npm install canvas ... > no ...

  5. android canvas bitmap matrix,Canvas API详解(Part 3)Matrix和drawBitmapMash

    本节引言:在Canvas的API文档中,我们看到这样一个方法:drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) 这个Matrix可是有大文章的 ...

  6. 初识canvas,使用canvas做一个百分比加载进度的动画

    canvas作为H5中重要的新增特性,使开发者可以用它来创作各种令人惊叹的作品.先来看一下浏览器对canvas的支持情况. <canvas> 标签定义图形,比如图表和其他图像,我们使用脚本 ...

  7. java canvas画图,UWP Canvas绘图越界

    我有一个画布(不是InkCanvas!),我可以在上面绘制Polylines . 这工作得很好,但是如下面的GIF所示,绘制出界限存在一个巨大的问题 . 我的画布在ScrollViewer中,Scro ...

  8. 【canvas系列】canvas实现“ 简单的Amaziograph效果”--画对称图【强迫症福利】

    标题很难引人入胜,先放个效果图好了 如果图片吸引不了你,那我觉得也就没啥看的了. demo链接: https://win7killer.github.io/demo_set/html_demo/can ...

  9. canvas笔记-扩展canvas的context及画椭圆及浏览器兼容问题

    首先是扩展canvas的context 比如扩展一个画五角星的代码 <!DOCTYPE html> <html lang="en"> <head> ...

  10. canvas笔记-在canvas中使用其他HTML元素

    这里使用的原理是使用css把div中关于html的元素通过布局位置,以及透明相关的设置,将其设置到canvas上,这样看起来就是在canvas绘制的按钮.然后使用JavaScript获取按钮的数据或者 ...

最新文章

  1. XML之父愤然离职亚马逊!看不惯公司疫情期间种种作为,百万年薪不要了
  2. linux下.rar的文件,Linux下.rar压缩文件处理 (RAR 4.11 for linux )
  3. HanLP《自然语言处理入门》笔记--5.感知机模型与序列标注
  4. Python编程基础15:异常
  5. Golang在Linux环境下的POSIX风格socket编程
  6. 路径规划之空间采样算法研究现状简述
  7. hbase的学习逻辑_HBase-1.0.1学习笔记(二)HBase数据模型
  8. spring mvc 从Controller向页面传数据
  9. 统计自然语言处理---信息论基础
  10. tmdb数据集_数据科学第2部分的数据管道tmdb api数据搜寻器
  11. MotoSimEG-VRC软件:安川机器人摆动焊接虚拟仿真操作方法
  12. 【恩智浦杯(飞思卡尔)全国大学生智能汽车竞赛】解读部分北科技术报告图像处理内容(点到为止)
  13. Docker容器-------dockerfile概念简介
  14. 《符文冲突》unity塔防类游戏试做,经验源码分享-1
  15. BLE协议栈入门二(添加service和characteristic)
  16. backtrader概念(二)Trade
  17. 博客园技术系列文章目录
  18. 高维内积的数学符号括弧
  19. ZDM2004工具式绘图软件v1.7 for AutoCAD2004 1CD(水电版)
  20. Google Play网页显示语言切换方法

热门文章

  1. Mysql——分组查询
  2. 2021-07-02-MySQL必知必会-笔记
  3. 如何使用prism进行统计分析(Analysis)?
  4. Python打开记事本
  5. HTML5学习01-基础讲解、新特性
  6. 亚马逊ERP系统无货源采集上货软件
  7. PSINS不可交换(圆锥/划桨)误差补偿
  8. 蓝桥杯 印章Java
  9. jsp中List,ArrayList的使用方法
  10. 家庭装修是找设计师和施工队好,还是找装修公司好呀