那些你不知道的 getClientRects()
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()相关推荐
- python3.9.0 print_关于 Python 3.9,那些你不知道的事
原标题:关于 Python 3.9,那些你不知道的事 作者 | Ayushi Rawat 编译 | 高卫华 题图 | 视觉中国 Python一直在满足社区需求,并且将成为未来使用最多的语言. Pyth ...
- 对象----《你不知道的JS》
最近在拜读<你不知道的js>,而此篇是对于<你不知道的js>中对象部分的笔记整理,希望能有效的梳理,并且深入理解对象 一.语法 对象两种定义形式:声明(文字)形式.构造形式 声 ...
- [转帖]什么是光纤的波长?看看有哪些是你不知道的!
什么是光纤的波长?看看有哪些是你不知道的! FS https://www.feisu.com/bbs/e-1640.html 2017-07-01 00:00:001084 我们平时最熟悉的光当然是我 ...
- 激发企业大“智慧” | 深度赋能AI全场景 揭秘你不知道的移动云
2020年是人工智能技术发展的关键年.疫情之下,世界见证了人工智能在抗击疫情中发挥的积极作用:今年4月,国家发改委正式将人工智能确定为新基建的重要领域之一.在历史机遇下,AI已实现"质变和量 ...
- 翻译连载 | 第 9 章:递归(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
为什么80%的码农都做不了架构师?>>> 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...
- 12月4日云栖精选夜读 | 你不知道的Web前端安全技术
互联网进入下半场,竞争越发的激烈,能与人工智能比肩的热门职业已然不多.而互联网越发达,各大企业所面临着各种网络安全问题会越发的严峻,Web安全工程师的人才缺口仍在不断扩大.经济理论揭示了需求大于供给时 ...
- 翻译连载 | JavaScript轻量级函数式编程-第4章:组合函数 |《你不知道的JS》姊妹篇...
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
- 翻译连载 | 第 10 章:异步的函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
为什么80%的码农都做不了架构师?>>> 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS> ...
- blob 图片_《你不知道的 Blob》番外篇
学习时间:2020.06.06 学习章节:<你不知道的 Blob> 原文对 Blob 的知识点介绍得非常完整清晰,本文通过四个问题来总结本文核心知识: Blob 是什么? Blob 怎么用 ...
最新文章
- 【ACM】UVa 1339
- python生成器应用中的一个要点
- 图像去模糊(逆滤波)
- dos系统 关闭服务器,如何开启或关闭服务程序?巧用DOS命令全攻略
- input和raw_input
- 70%进入体制内!2021年,清北毕业生都去哪了?
- php 星座运势_星座运势查询示例代码
- 关于2006年上半年网工试考一览
- 开源一个cmpp协议转http协议项目
- Ubuntu 截图工具
- 51nod1534 棋子游戏
- 模型汇总-14 多任务学习-Multitask Learning概述
- mac下Charles https抓包乱码,手机不能上网解决
- 存储器类型与S3C2440启动地址
- linux firefox插件开发教程,如何在Linux上添加Firefox插件?
- 根据用户输入的Email跳转到相应的邮箱登录页面【蕃薯耀分享】
- linux php安装xsl扩展,11.32 php扩展模块安装
- Mixamo使用笔记
- 强改微信内置浏览器——让x5内核滚粗
- 生活中人们通过计算机网络进行信息交流,浅谈网络计算机应用
热门文章
- C语言 数组长度计算 - C语言零基础入门教程
- Metasploit基础和基本命令详解
- html音频控件隐藏,html5 – Html 5音频标签自定义控件?
- php 验证码一直不对,ThinkPHP验证码老是出错怎么办
- keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...
- 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
- c语言图像函数怎么用,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...
- java实现权限_Java实现权限管理的两种方式
- c#简单记事本应用程序的快捷方式_Windows 10七月更新又翻车,记事本没了
- java安装 hello_安装JAVA步骤,并编写HELLOWORLD程序