程序运行截图如下:

下面提几个知识点。

第一个是JS中实现静态类,如下utils.js

export let HHUtils = {}HHUtils .StaticClass = (function(){let Return = {xxxxxxx: function(xxxx){let ret= 0;return ret;},yyyyyyy: function(xxxx, yyyy){let ret;........return ret;},zzzzzzz: function(zzz, zzzzz){let ret;......return ret;}};return Return;
})();

这里就是依靠export导出对象,并且对象里面有给StaticClass方法,其中返回Return,在Return对象中写上各种各样的函数。通过这种方式就可以实现JS的静态工具类了。

另外一个知识点是判断字符串长度,也就是英文输入法输入的为1,中文输入法输入的为2:

关键代码如下:

let Return = {//获取字符串的长度:中文相关是2,英文相关是1getTextWidth: function(text){let len = 0;for(let i = 0; i < text.length; i++){if(text.charCodeAt(i) > 127 || text.charCodeAt(i) == 94){len += 2;}else{len += 1;}}return len;},

下面说下如何实现字符串自适应。此处只说思路,不说代码:

如果要写到矩形里面,矩形的长宽为100。那么如果是10大小的字体,在two.js中差不多可以写10个中文,或者20个英文,也就是可以使用上面那个计算字符串长度的代码。

在two.js中makeText写文字是从中间写,然后向两边增加。

最后是行,这里使用穷举法,也就是从字体大小的8,10,12,14,16,18,20,也就是可以使用for循环去操作。如果是矩形宽为100,当有10个中文就换行,使用这个思路进行操作。

Web前端笔记-字符串自适应tip提示框(适应大小自动换行JS中静态工具类实现)思路相关推荐

  1. WEB前端网页设计-Bootstrap4 信息提示框

    目录 提示框添加链接 关闭提示框 提示框动画 Bootstrap 4 可以很容易实现信息提示框. 提示框可以使用 .alert 类, 后面加上 .alert-success, .alert-info, ...

  2. Web前端笔记-2D图形平面内平移定位(two.js)

    此处是在控制台中输入了window.mainPage.flyToPosition(-1000, 500),他是经过平移过去的. 整个坐标盘是这样的: 这里使用two.bind('update', fu ...

  3. Web前端笔记-圆环随时间逐渐缩小(使用two.js)

    这里给出效果图: 这里就给出截图,不搞gif了: 运行时: 这里主要是使用了setInterval去操作的,并且设置的timeout为0,这样的效果是比较好的. 关键代码如下: 画图相关文件: ;im ...

  4. 计算机图形学Web前端笔记-图形平移放缩原理及实现(two.js鼠标事件适用所有渲染)

    在two.js中,只提供了svg渲染时的鼠标事件,而canvas和webgl并没有提供,这样就对本人造成了很大的困扰,因此学习了下计算机图形学相关的知识,实现了利用two.js绘图在canvas.sv ...

  5. Web前端笔记-移动端触屏移动视角(two.js)

    这里主要是利用jquery,在移动端时也可以实现视角的移动效果. 程序运行截图如下: 这里用触屏操作与鼠标操作一样: 关键源码如下: //移动端触碰开始 $stage.bind('touchstart ...

  6. Web前端 笔记 (21-45)

    Web前端 笔记 (21-45) 21.嵌套列表 1.概念 2.有(无)序列表嵌套 3.定义列表嵌套 22.表格标签 1.种类 2.举例 未加语义化标签 添加语义化标签 23.表格属性 1.常见表格属 ...

  7. web前端笔记1-hml,css部分

    这里写目录标题 一.基础内容 1.网页 1.1什么是网页 1.2什么是HTML 1.3网页的形成 2.常用浏览器 2.1常用的浏览器 2.2浏览器内核 3.web标准 3.1为什么需要web标准 3. ...

  8. Web前端笔记(三)

    Web前端笔记记录(三) position定位 relative相对定位 absolute绝对定位 脱离文档流 使内联支持宽高 使块元素默认宽根据内容决定(让块具备内联的特性) 如果有定位祖先元素相对 ...

  9. 调整idea中控制台及右侧提示框字体大小

    调整idea中控制台及右侧提示框字体大小

最新文章

  1. linux fuser 命令 查看文件/网络端口 被什么进程占用
  2. winform教_电脑绝技教你22天学精Csharp之第十五天winform应用程序补充5
  3. oppo 手机侧滑快捷菜单_[图]OPPO又出脑洞设计:弹出/侧滑第二块手机屏幕
  4. triz矛盾矩阵_TRIZ—创新性问题解决理论与实务培训
  5. 关于EMS,邮政快递包裹,邮政标准快递,邮政小包,EMS经济快递
  6. 支付宝支付时提示“长时间没操作,请重新发起请求”的错误处理
  7. DOS攻击之Synflood攻击
  8. python 管理windows客户端_Python管理Windows进程
  9. Vuex_Todos
  10. java项目技术方案_javaweb应用开发项目设计方案
  11. 密码学之前后向安全性
  12. 邓元鋆:AMD的方法论
  13. 基于R的飞机航线数据可视化(卫星地图)
  14. 2004年南京美食地图 [转载]
  15. nvm在c语言是什么意思的缩写,nvm是什么意思的缩写
  16. 积木报表JimuReport支持的15种数据库类型介绍
  17. VIBE:3D人体姿态预测项目复现笔记
  18. error pulling image configuration:XXX net/http: TLS handshake timeout
  19. DevOps Master课程总结:知否知否,应是DevOps肥ITIL瘦(送ITIL4前生今世)
  20. python与java-还在纠结选Python还是Java?看完就有数了

热门文章

  1. CSS3弹性盒模型布局模块介绍
  2. 两分钟让你变成jar包制作高手
  3. 程序员常挂在嘴边的10句话:刚刚还是好的啊!
  4. 作为前阿里人,来扒一扒数据中台的皇帝外衣
  5. 逻辑人渴望控制那些让他们感兴趣的东西
  6. 飞鸽传书最新C++源码:这两个消息钩子
  7. 飞鸽传书写每行都认认真真
  8. 飞鸽传书从微软官网上了解到微软正在推动虚拟化
  9. 飞鸽传书2011真正把用户利益放在股东的利益
  10. 最大同性恋交友网站被微软收购,我不服!