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 相关文章推荐
IE中jscript/javascript的条件编译
Sep 07 Javascript
深入理解JavaScript定时机制
Oct 29 Javascript
网页收藏夹显示ICO图标(代码少)
Aug 04 Javascript
js限制文本框的输入内容代码分享(3类)
Aug 20 Javascript
表单验证插件Validation应用的实例讲解
Oct 10 Javascript
AngularJS包括详解及示例代码
Aug 17 Javascript
CSS3 media queries结合jQuery实现响应式导航
Sep 30 Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
Nuxt v-bind绑定img src不显示的解决
Dec 05 Javascript
基于JavaScript实现贪吃蛇游戏
Mar 16 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
Jul 29 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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
树结构之JavaScript
2017/01/24 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
Python实现的选择排序算法示例
2017/11/29 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
Django 再谈一谈json序列化
2020/03/16 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
python可以用哪些数据库
2020/06/22 Python
咖啡厅创业计划书范本
2014/01/22 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
六一儿童节致辞
2015/07/31 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
实操Python爬取觅知网素材图片示例
2021/11/27 Python