JS使用canvas中的measureText方法测量字体宽度示例


Posted in Javascript onFebruary 02, 2019

本文实例讲述了JS使用canvas中的measureText方法测量字体宽度。分享给大家供大家参考,具体如下:

工作项目中用到的东西,要限制一个容器的宽度,超过了这个宽度就要显示展开按钮,点击展开按钮要全部展示出来,可以用css的加省略号的那个,但是有时候这个还不行,我就自己想办法,突然想到canvas中有个measureText函数可以测量字体的宽度,于是我就想着用这个函数来测出句子的宽度来,然后和容器的宽度进行比较,这样就可以了,那我就来写个demo来演示一下如何测量

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script type="text/javascript">
    var text = "林三哥超级帅";
    var canvas = document.createElement('canvas')//首先创建一个canvas标签
    var ctx = canvas.getContext("2d");//把canvas的画笔给调出来
      ctx.font="30px Arial";//设置字体大小和字体,这一步很重要,直接影响了测量结果,因为14px和16px的字体的宽度是不一样的
      var width = ctx.measureText(text).width;//开始测量字体的宽度
      console.log('text的宽度为' + width);
  </script>
</body>
</html>

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JS使用canvas中的measureText方法测量字体宽度示例

这个是结果,30px的字有6个,宽度一共180,没毛病!!!哈哈!!

更多关于JavaScript相关内容还可查看本站专题:《JavaScript+HTML5特效与技巧汇总》、《JavaScript图形绘制技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 解析后的xml对象的读取方法细解
Jul 25 Javascript
JavaScript中出现乱码的处理心得
Dec 24 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
Jul 10 Javascript
js delete 用法(删除对象属性及变量)
Aug 24 Javascript
JS逆序遍历实现代码
Dec 02 Javascript
Javascript核心读书有感之语句
Feb 11 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
Apr 25 Javascript
JS实现的走迷宫小游戏完整实例
Jul 19 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
Aug 14 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
JS使用对象的defineProperty进行变量监控操作示例
Feb 02 #Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
Feb 02 #Javascript
通过cordova将vue项目打包为webapp的方法
Feb 02 #Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 #Javascript
JS实现数组去重及数组内对象去重功能示例
Feb 02 #Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 #Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 #Javascript
You might like
php中的实现trim函数代码
2007/03/19 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
php实现删除空目录的方法
2015/03/16 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
详解php反序列化
2020/06/10 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
js 对象是否存在判断
2009/07/15 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
window.onload使用指南
2015/09/13 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
实现vuex原理的示例
2020/10/21 Javascript
Python struct模块解析
2014/06/12 Python
用python 制作图片转pdf工具
2015/01/30 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
Python正则表达式如何匹配中文
2020/05/27 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
2014年机关作风建设工作总结
2014/10/23 职场文书
初中中等生评语
2014/12/29 职场文书
酒店员工管理制度
2015/08/05 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
Java 异步任务计算FutureTask
2022/04/28 Java/Android