JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

(function() {

function writeTextOnCanvas(cns, lh, rw, text) {

var cns = document.getElementById(cns);

var ctx = cns.getContext("2d");

var lineheight = lh;

var text = text;

ctx.width = cns.width;

ctx.height = cns.height;

ctx.clearRect(0, 0, ctx.width, ctx.height);

ctx.font = "16px 微软雅黑";

ctx.fillStyle = "#f00";

function getTrueLength(str) { //获取字符串的真实长度(字节长度)

var len = str.length,

truelen = 0;

for (var x = 0; x < len; x++) {

if (str.charCodeAt(x) > 128) {

truelen += 2;

} else {

truelen += 1;

}

}

return truelen;

}

function cutString(str, leng) { //按字节长度截取字符串,返回substr截取位置

var len = str.length,

tlen = len,

nlen = 0;

for (var x = 0; x < len; x++) {

if (str.charCodeAt(x) > 128) {

if (nlen + 2 < leng) {

nlen += 2;

} else {

tlen = x;

break;

}

} else {

if (nlen + 1 < leng) {

nlen += 1;

} else {

tlen = x;

break;

}

}

}

return tlen;

}

for (var i = 1; getTrueLength(text) > 0; i++) {

var tl = cutString(text, rw);

ctx.fillText(text.substr(0, tl).replace(/^\s+|\s+$/, ""), 10, i * lineheight + 50);

text = text.substr(tl);

}

}

writeTextOnCanvas("mycanvas", 22, 40, document.getElementById("input").value);

document.getElementById("input").onkeyup = function() {

writeTextOnCanvas("mycanvas", 22, 40, this.value);

}

})();

不能换行 俄语 前端h5_HTML5 Canvas fillText填充文字自动换行(支持中英文混合)...相关推荐

  1. 不能换行 俄语 前端h5_H5兼容问题及解决方法

    移动端如何定义字体font-family @ --------------------------------------中文字体的英文名称 @ 宋体 SimSun @ 黑体 SimHei @ 微信雅 ...

  2. 移动端canvas合成图片,填充文字自动换行

    今天用canvas合成带有微信公众号二维码和祝福语的春节贺卡 由于代码都是原生的没有引入其他库,所以直接将对应部分贴出来吧. html <!--画布 --> <canvas id=& ...

  3. 前端实现可绘制的canvas画布_JS前端基于canvas给图片添加水印

    前两天给个人网站添加了一个小功能,就是在文章编辑上传图片的时候自动给图片加上水印.给网页图片添加水印是个常见的功能,也是互联网内容作者保护自己版权的方法之一.本文简单记录一下借助canvas在前端实现 ...

  4. canvas绘制的文字如何换行

    <html><head><title>canvas绘制的文字如何换行</title><style type="text/css" ...

  5. 前端可视化——Canvas

    Canvas 基本使用 <canvas id="tutorial" width="300" height="300"></ ...

  6. html5 fill,HTML canvas fillText()用法及代码示例

    fillText()方法用于在画布上绘制填充的文本.文本的默认颜色是黑色. 用法: context.fillText(text, x, y, maxWidth); 参数: text:此参数指定要在画布 ...

  7. html5 mask,HTML5 Canvas渐进填充与透明实现图像的Mask效果

    HTML5 Canvas渐进填充与透明实现图像的Mask效果 2020-03-24 19:10:45 字体:大 中 小 来源:转载 供稿:网友 详细解释HTML5 Canvas中渐进填充的参数设置与使 ...

  8. Blob如何在html里转换成图片,前端图片canvas,file,blob,DataURL等格式转换

    前端图片canvas,file,blob,DataURL等格式转换最近用到一些图片相关的操作,记录一下笔记. 将file转化成base64 场景: 获取到一个file类型的图片,如果直接在html中预 ...

  9. A canvas fillText and strokeText example

    A canvas fillText and strokeText example A canvas fillText and strokeText example A canvas fillText ...

最新文章

  1. SQLSTATE[HY000] [2003] Can’t connect to MySQL serv
  2. Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 【Interval】 分区属性成了【N】...
  3. [SCOI2014]方伯伯的OJ
  4. 【渝粤教育】电大中专建筑材料作业 题库
  5. ajax修改按钮的html值,ajax - 在yii 1中使用ajax根据选定的单选按钮选项更新html字段值 - 堆栈内存溢出...
  6. 微信小程序 Image 图片实现宽度100%,高度自适应
  7. linux存储格式化和挂载
  8. Springcloud实战(五)微服务网关
  9. Ajax无刷新评论的PHP代码,PHP Ajax实现页面无刷新发表评论
  10. rarlinux 安装与使用
  11. 锐捷、赛尔认证MentoHUST
  12. kinect沙池游戏
  13. linux命令前的$是什么意思,linux中$符号的基础用法总结
  14. python 列表推导式 else_列表推导式与表达式生成器在 Python 中的滥用!
  15. 【文献阅读】Optimistic Bull or Pessimistic Bear: Adaptive Deep Reinforcement Learning for Stock Portfolio
  16. 涨知识!中国天眼一秒钟要用多少度电?
  17. 算法基础—数据结构—双链表
  18. MySQl 实现 FULL JOIN
  19. android 边距 百分比,Android百分比布局:PercentRelativeLayout
  20. wafer robot-晶圆机器人(防水型)

热门文章

  1. 小电流选线装置的研制之
  2. linux详细入门教程(一)------linux概述
  3. 朴素贝叶斯分类器(Naive Bayes classifier)
  4. html在线表格样式模板,HTML5+CSS3 表格设计(Table)
  5. Unable to read the project file 'client.csproj'. Could not load file or assembly 'Microsoft.Build.En
  6. 工具篇 之 解决希捷硬盘在 Mac 上只读情况
  7. springboot房地产管理系统java客户预定楼盘房型房屋订单jsp源码mysql
  8. 最全科目一扣分、罚款、驾照、标志技巧总结归纳
  9. MOXA串口服务器使用
  10. 安卓Android自定义控件:200行代码实现一个简约时钟