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 相关文章推荐
使用TextRange获取输入框中光标的位置的代码
Mar 08 Javascript
extjs3 combobox取value和text案例详解
Feb 06 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
Mar 04 Javascript
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
JavaScript获取table中某一列的值的方法
May 06 Javascript
JavaScript中的toUTCString()方法使用详解
Jun 12 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
第一次接触神奇的Bootstrap
Oct 14 Javascript
原生JavaScript实现Tooltip浮动提示框特效
Mar 07 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
js数据类型转换与流程控制操作实例分析
Dec 18 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
typecho插件编写教程(六):调用接口
2015/05/28 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
js里的prototype使用示例
2010/11/19 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
详解Python自建logging模块
2018/01/29 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
python爬虫增加访问量的方法
2019/08/22 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
房地产融资计划书
2014/01/10 职场文书
反邪教警示教育方案
2014/05/13 职场文书
西湖英语导游词
2015/02/06 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
《搭石》教学反思
2016/02/18 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
python中的random模块和相关函数详解
2022/04/22 Python