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 相关文章推荐
JS中怎样判断undefined(比较不错的方法)
Mar 27 Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
webix+springmvc session超时跳转登录页面
Oct 30 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
Feb 13 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 Javascript
页面点击小红心js实现代码
May 26 Javascript
vue中使用rem布局代码详解
Oct 30 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
Nov 04 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
Vue通过懒加载提升页面响应速度
May 10 Vue.js
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
GD输出汉字的函数的分析
2006/10/09 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
PDO::getAttribute讲解
2019/01/28 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
通过DOM脚本去设置样式信息
2010/09/19 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
使用python实现接口的方法
2017/07/07 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
UNIX命令速查表
2012/03/10 面试题
产品生产计划书
2014/05/07 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL
Redis读写分离搭建的完整步骤
2021/09/14 Redis