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 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
Dec 17 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
jQuery实现立体式数字动态增加(animate方法)
Dec 21 Javascript
微信小程序之拖拽排序(代码分享)
Jan 21 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
jQury Ajax使用Token验证身份实例代码
Sep 22 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
原生js实现轮播图特效
May 04 Javascript
vscode自定义vue模板的实现
Jan 27 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
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php图片裁剪函数
2018/10/31 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
javascript轮播图算法
2016/10/21 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
Python用字典构建多级菜单功能
2019/07/11 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
捐款倡议书范文
2014/02/02 职场文书
期终自我鉴定
2014/02/17 职场文书
美术毕业生求职信
2014/02/25 职场文书
二年级小学生评语
2014/04/21 职场文书
债务纠纷委托书
2014/08/30 职场文书
投资入股协议书
2016/03/22 职场文书
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python