关键词搜索

源码搜索 ×
×

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

发布2020-07-17浏览1291次

详情内容

程序运行截图如下:

下面提几个知识点。

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

  1. export let HHUtils = {}
  2. HHUtils .StaticClass = (function(){
  3. let Return = {
  4. xxxxxxx: function(xxxx){
  5. let ret= 0;
  6. return ret;
  7. },
  8. yyyyyyy: function(xxxx, yyyy){
  9. let ret;
  10. ....
  11. ....
  12. return ret;
  13. },
  14. zzzzzzz: function(zzz, zzzzz){
  15. let ret;
  16. ...
  17. ...
  18. return ret;
  19. }
  20. };
  21. return Return;
  22. })();

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

 

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

关键代码如下:

  1. let Return = {
  2. //获取字符串的长度:中文相关是2,英文相关是1
  3. getTextWidth: function(text){
  4. let len = 0;
  5. for(let i = 0; i < text.length; i++){
  6. if(text.charCodeAt(i) > 127 || text.charCodeAt(i) == 94){
  7. len += 2;
  8. }
  9. else{
  10. len += 1;
  11. }
  12. }
  13. return len;
  14. },

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

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

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

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

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载