1.getClientRects()。是可以获取内联元素的内容有多少行

最近一个交互,在限定文字展现是5行,超过5行,则在后面添加。。。展开。如果没有展开二字,我们一般用css就能完成了。但是为了交互更人性化

text-overflow:
-o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;

来看看代码,是如何实现的,一定要弄一个默认的span来判断行数,得到5行嗯能显示什么文字。然后记录下来

 let txtDom = this.$refs.textContainer;txtDom.innerHTML = originalTxt; //第一次全部渲染let showtxtdom = originalTxt;let texLength = txtDom.getClientRects();let h = getLength(texLength);let tl = 0;if (h <= 5) {obj.unfoldFlag = false;} else {obj.unfoldFlag = true;}while (h > 5) {var step = 1;if (/<br\/>$/.test(showtxtdom)) {//回退的时候,如果碰到换行要整体替换step = 5;}showtxtdom = showtxtdom.slice(0, -step);//console.log(showtxtdom);txtDom.innerHTML =showtxtdom +'<span>...</span><span class="comm-item-content-spread-s">展开</span>';// console.log(txtDom.innerHTML);h = getLength(txtDom.getClientRects());tl += step;}obj.showTxt = showtxtdom;//点赞是否是已经默认的obj.statedefaut = item.state;obj.imgsrcselect ="http://img.58cdn.com.cn/chinahr/img/agree_ic_sel@3x.gif?" +new Date().getTime();let regroupdata = Object.assign({}, obj, item);return regroupdata;});// console.log(newlist);//this.$set(this.commentListdata.commentList, newlist);this.commentListArrObj = this.commentListArrObj.concat(newlist);this.commentListdata = communitydetailData.data;this.commentListdata.commentList = this.commentListArrObj;// console.log(this.commentListdata);return;}

2.getBoundingClientRect() 获取盒模型,元素的高度和定位,left +top.在vue里面经常遇到

Element.getBoundingClientRect().width =  border-left-width + padding-left + width + padding-right + border-right-widthElement.getBoundingClientRect().height =  border-top-width + padding-top + height + padding-bottom + border-bottom-width

3.$nextTick 的应用/nextTick:在下次 DOM 更新循环结束之后执行延迟回调。

  • 很多时候我们需要做到,动态算content的高度,就要手动减去头部+尾部的高度。我们需要等到数据加载完成之后,在做操作
  • 方法就是监听数据的变化,然后在监听里面做搞的元算

    watch: {commentListdata: function() {this.$nextTick(() => {//console.log("--nextTick--");this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top;this.hasnowrapHeight = this.wrapperHeight - this.$refs.commmainwrap.getBoundingClientRect().height - this.$refs.commfootwrap.getBoundingClientRect().height;});}}

那些你不知道的 getClientRects()相关推荐

  1. python3.9.0 print_关于 Python 3.9,那些你不知道的事

    原标题:关于 Python 3.9,那些你不知道的事 作者 | Ayushi Rawat 编译 | 高卫华 题图 | 视觉中国 Python一直在满足社区需求,并且将成为未来使用最多的语言. Pyth ...

  2. 对象----《你不知道的JS》

    最近在拜读<你不知道的js>,而此篇是对于<你不知道的js>中对象部分的笔记整理,希望能有效的梳理,并且深入理解对象 一.语法 对象两种定义形式:声明(文字)形式.构造形式 声 ...

  3. [转帖]什么是光纤的波长?看看有哪些是你不知道的!

    什么是光纤的波长?看看有哪些是你不知道的! FS https://www.feisu.com/bbs/e-1640.html 2017-07-01 00:00:001084 我们平时最熟悉的光当然是我 ...

  4. 激发企业大“智慧” | 深度赋能AI全场景 揭秘你不知道的移动云

    2020年是人工智能技术发展的关键年.疫情之下,世界见证了人工智能在抗击疫情中发挥的积极作用:今年4月,国家发改委正式将人工智能确定为新基建的重要领域之一.在历史机遇下,AI已实现"质变和量 ...

  5. 翻译连载 | 第 9 章:递归(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...

    为什么80%的码农都做不了架构师?>>>    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...

  6. 12月4日云栖精选夜读 | 你不知道的Web前端安全技术

    互联网进入下半场,竞争越发的激烈,能与人工智能比肩的热门职业已然不多.而互联网越发达,各大企业所面临着各种网络安全问题会越发的严峻,Web安全工程师的人才缺口仍在不断扩大.经济理论揭示了需求大于供给时 ...

  7. 翻译连载 | JavaScript轻量级函数式编程-第4章:组合函数 |《你不知道的JS》姊妹篇...

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...

  8. 翻译连载 | 第 10 章:异步的函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...

    为什么80%的码农都做不了架构师?>>>    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...

  9. blob 图片_《你不知道的 Blob》番外篇

    学习时间:2020.06.06 学习章节:<你不知道的 Blob> 原文对 Blob 的知识点介绍得非常完整清晰,本文通过四个问题来总结本文核心知识: Blob 是什么? Blob 怎么用 ...

最新文章

  1. 【ACM】UVa 1339
  2. python生成器应用中的一个要点
  3. 图像去模糊(逆滤波)
  4. dos系统 关闭服务器,如何开启或关闭服务程序?巧用DOS命令全攻略
  5. input和raw_input
  6. 70%进入体制内!2021年,清北毕业生都去哪了?
  7. php 星座运势_星座运势查询示例代码
  8. 关于2006年上半年网工试考一览
  9. 开源一个cmpp协议转http协议项目
  10. Ubuntu 截图工具
  11. 51nod1534 棋子游戏
  12. 模型汇总-14 多任务学习-Multitask Learning概述
  13. mac下Charles https抓包乱码,手机不能上网解决
  14. 存储器类型与S3C2440启动地址
  15. linux firefox插件开发教程,如何在Linux上添加Firefox插件?
  16. 根据用户输入的Email跳转到相应的邮箱登录页面【蕃薯耀分享】
  17. linux php安装xsl扩展,11.32 php扩展模块安装
  18. Mixamo使用笔记
  19. 强改微信内置浏览器——让x5内核滚粗
  20. 生活中人们通过计算机网络进行信息交流,浅谈网络计算机应用

热门文章

  1. C语言 数组长度计算 - C语言零基础入门教程
  2. Metasploit基础和基本命令详解
  3. html音频控件隐藏,html5 – Html 5音频标签自定义控件?
  4. php 验证码一直不对,ThinkPHP验证码老是出错怎么办
  5. keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...
  6. 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
  7. c语言图像函数怎么用,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...
  8. java实现权限_Java实现权限管理的两种方式
  9. c#简单记事本应用程序的快捷方式_Windows 10七月更新又翻车,记事本没了
  10. java安装 hello_安装JAVA步骤,并编写HELLOWORLD程序