那些你不知道的 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;});}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537796.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537796.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537796.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea統計代碼行數

使用統計代碼插件&#xff0c;可以統計代碼行數。安裝插件 Statistic。&#xff08;這個最好用&#xff09; File----settiing---plugins---browse repositories 重啟idea后&#xff0c;底部會多一個 Statistic 點擊刷新&#xff0c;行數就出來了。看最后的 Total

數據結構計算c語言數據步驟,數據結構C語言版視頻教程-介紹各種最常用的數據結構 分析各種數據結構運算算法的實現過程-電腦網絡視頻-星火視頻教程 21edu8.com...

這部數據結構C語言版視頻教程結構清晰&#xff0c;實例豐富&#xff0c;具有很強的操作性和實用性。 它主要為大家介紹各種最常用的數據結構&#xff0c;以及從編程角度出發&#xff0c;分析各種數據結構運算算法的實現過程。數據結構是計算機存儲、組織數據的方式。數據結構是…

極光推送小結 - iOS

此次即友盟分享小結(友盟分享小結 - iOS)之后對推送也進行了一版優化.此次分享內容依然基于已經成功集成 SDK 后 code 層級部分. 注:此次分享基于 SDK 3.1.0,若版本相差較大,僅供參考. 極光推送官方文檔: https://docs.jiguang.cn/jpush/guideline/intro/ 首先,為分享單獨創建了…

word去除所有的空行

申請軟著時&#xff0c;需要復制源代碼到word里。每行代碼不能有換行&#xff0c;要緊湊的80頁代碼。每頁要50~55行代碼。 字體可設置為&#xff1a;宋體&#xff0c;5號&#xff0c;行間距固定值12。 演示實例 去除下面word代碼里的空行 第一步&#xff1a; word顯示隱藏的…

c語言Wndproc未定義,為什么我的老是未定義

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓這是源代碼#includeLRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){static TCHAR szAppName[] TEXT("HelloWin&qu…

spark on yarn

2019獨角獸企業重金招聘Python工程師標準>>> spark on yarn 軟件安裝 當前環境 hadoop環境搭建參考&#xff1a;hadoop集群安裝 hadoop2.6spark-2.2.0-bin-hadoop2.6.tgzscala-2.11.12安裝scala tar -zxvf scala-2.11.12.tgz vi /etc/profile 添加以下內容 export S…

如何查看SQL Server2000執行過的SQL語句

SQLServer事件探查器可以完整記錄SQL服務器執行過的SQL語句以及存儲過程等 下面是SQLServer事件探查器的使用方法&#xff1a; 1. 打開SQL Server 企業管理器。 2. 從“工具”菜單選擇“事件探查器”。 3. 當“事件探查器”主界面打開后&#xff0c;從“文件”菜單選擇“新跟蹤…

c語言鏈表不帶頭節點的排序,不帶頭結點的單向鏈表排序——插入排序(C語言)...

LinkList* LinkListInsertSort(LinkList* pHead){LinkList *pFirst (LinkList *)NULL; /* 原鏈表剩下未排序節點的頭指針 */LinkList *pCurrInsert (LinkList *)NULL; /* 無序鏈表中當前待插入節點 */LinkList *pPrev (LinkList *)NULL; /* 有序鏈表中插入位置的前一個節點 …

免費字體

若不想字體版權有問題&#xff0c;可以參考以下幾種完全免費的字體&#xff1a; 方正&#xff1a;方正黑體、方正書宋、方正仿宋、方正楷體 思源&#xff1a;思源黑體、思源柔黑體、思源宋體 站酷&#xff1a;站酷酷黑體、站酷高端黑體、站酷快樂體、站酷意大利體 。

【Python爬蟲學習筆記12】Ajax數據爬取簡介

有時候在我們設計利用requests抓取網頁數據的時候&#xff0c;會發現所獲得的結果可能與瀏覽器顯示給我們的不一樣&#xff1a;比如說有的信息我們通過瀏覽器可以顯示&#xff0c;但一旦用requests卻得不到想要的結果。這種現象是因為我們通過requests獲得的都是HTML源文檔&…

c語言的報告一,C語言實驗報告(一).doc

C語言實驗報告(一)C語言實驗報告(一)一、實驗目的掌握C語言中&#xff0c;基本的輸入輸出函數的使用方法。掌握printf中轉義字符’\t’&#xff0c;’\n’的用法。掌握賦值語句的用法。掌握算術表達式、賦值表達式的計算。掌握數學函數的使用。二、實驗內容從鍵盤輸入一個6位整…

數據挖掘——相似文章推薦

相似文章推薦&#xff1a;在用戶閱讀某篇文章時&#xff0c;為用戶推薦更多的與在讀文章內容相類似的文章 相關概念&#xff1a; 推薦(Recommended)&#xff1a;指介紹好的人或事物&#xff0c;希望被任用或接受。數據挖掘領域&#xff0c;推薦包括相似推薦和協同過濾推薦。 相…

win10投影無法正常使用:我們正在確認此功能 解決方法

鼠標移動到開始按鈕&#xff0c;右鍵----- windows powershell&#xff08;管理員&#xff09; 輸入命令&#xff1a; netsh winsock reset 然后重啟電腦&#xff0c;問題解決

青海師大c語言研究生專業課,2016年青海師范大學計算機應用技術C語言程序設計考研復試題庫...

一、選擇題1&#xff0e; 有如下程序:程序運行后的輸出結果是( )。答:C【解析】題目中判斷if 條件是否成立&#xff0c;后a 自增 得if 條件不成立執行else 函數體&#xff0c;輸出F 。最后執行語句故C 選項正確。 按照格式輸出2&#xff0e; 有如下程序&#xff1a;先取值為0, …

產品經理和項目經理的差別

原文地址&#xff1a;https://blog.csdn.net/verifocus/article/details/79219539 --------------------------------------------------------------------- 項目經理與產品經理的區別&#xff0c;用一句話概括就是&#xff1a;產品經理是做正確的事情&#xff0c;項目經理是…

c語言設計一個按時間片輪轉法實現處理器調度的程序,設計一個按時間片輪轉法實現處理器調度的程序...

實驗一處理器調度一、實習內容選擇一個調度算法&#xff0c;實現處理器調度。&#xff1b;二、實習目的在采用多道程序設計的系統中&#xff0c;往往有若干個進程同時處于就緒狀態。當就緒進程個數大于處理器數時&#xff0c;就必須依照某種策略來決定哪些進程優先占用處理器。…

Perl的淺拷貝和深度拷貝

首先是深、淺拷貝的概念&#xff1a; 淺拷貝&#xff1a;shallow copy&#xff0c;只拷貝第一層的數據。Perl中賦值操作就是淺拷貝深拷貝&#xff1a;deep copy&#xff0c;遞歸拷貝所有層次的數據&#xff0c;Perl中Clone模塊的clone方法&#xff0c;以及Storable的dclone()函…

程序員分析報告(2018)-總結篇

一、生活中的程序員 居住篇 在主要職業群體中&#xff0c;程序員更傾向于租房&#xff0c;20.9%的受訪程序員目前自己有房&#xff0c;此比例明顯低于其他職業。大概是因為程序員大部分還比較 年輕&#xff0c;傳說中的超高薪水并不能讓很多人擁有自己的房子而更長的工作…

linux lvm 查看,Linux LVM 詳解

邏輯卷管理LVM是一個多才多藝的硬盤系統工具。無論在Linux或者其他類似的系統&#xff0c;都是非常的好用。傳統分區使用固定大小分區&#xff0c;重新調整大小十分麻煩。但是&#xff0c;LVM可以創建和管理“邏輯”卷&#xff0c;而不是直接使用物理硬盤。可以讓管理員彈性的管…

cnblogs修改網站圖標icon

以下修改網絡地址即可 <script type"text/javascript" language"javascript">//Setting ico for cnblogsvar linkObject document.createElement(link);linkObject.rel "shortcut icon";linkObject.href "icon的網絡地址";do…