最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實現(xiàn)文本展開收起功能

 更新時間:2022年04月15日 11:52:10   作者:假裝很6  
這篇文章主要為大家詳細介紹了Vue實現(xiàn)文本展開收起功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Vue實現(xiàn)文本展開收起功能的具體代碼,供大家參考,具體內(nèi)容如下

先說說需求,以及實現(xiàn)的需求

1、移動端H5,發(fā)表留言后跳轉到評論列表,超過5行文字,多余的需要隱藏,并且需要有展開/收起按鈕

2、未超過5行的文字,不需要展示展開收起/按鈕

下面直接丟出核心代碼

<div :ref="`community_${index}`"?
? ? ? class="community-words"?
? ? ? :class="{'more-line':item.domHeight > 300 && !item.open}"?
? ? ? v-html="contentHtml(item.content)" >
</div>
<span class="toggle-fold"?
? ? ? v-show="item.domHeight > 300"?
? ? ? @click="toggleFoldFn(item,index)">
? ? ? {{ item.open ? '收起' : '展開'}}
?</span>

實現(xiàn)思路:獲取數(shù)據(jù)后先渲染頁面,然后計算渲染的dom元素高度,在動態(tài)添加class,設置超過的樣式,以及顯示展開收起按鈕,目前是移動端h5,流暢度滿足正常需求!下面說說具體細節(jié):

div里面顯示的是文字內(nèi)容,文字的行高我這邊固定是60px,所以超過5行的高度就是300px,這里用300判斷,這個判斷條件,可以根據(jù)實際情況修改,open字段是展開收起使用的,默認false,下面看看具體的js代碼

?apiQueryCommentsList(data).then((res) => {
? ?if(res.data && res.data.length){
? ? ?this.communityList = res.data;
? ? ? ?this.$nextTick(() => {
? ? ? ? ? for(let k = 0; k < this.communityList.length; k++){
? ? ? ? ? ? ? ? const domHeight = this.$refs[`community_${k}`][0].offsetHeight;
? ? ? ? ? ? ? ? const open = domHeight < 300 ? true : false;
? ? ? ? ? ? ? ? this.$set(this.communityList[k],'domHeight',domHeight);
? ? ? ? ? ? ? ? this.$set(this.communityList[k],'open',open);
? ? ? ? ? ? ? }
?
? ? ? ? ? ? });
? ? ? ? ? }else{
? ? ? ? ? ? this.communityList = [];
? ? ? ? ? }
? ? ? ? });

獲取數(shù)據(jù)后先渲染,再獲取dom高度,通過$set給每個數(shù)據(jù)添加domHeight屬性,以及open屬性,open屬性還會被用到展開收起功能,接下來看展開收起功能

toggleFoldFn(item){
? ? ? ? // ios下點擊展開需要記錄滾動條位置,點擊收起的時候回到展開的位置
? ? ? ? if(!item.open){
? ? ? ? ? this.scollTop = document.documentElement.scrollTop || document.body.scrollTop;
? ? ? ? }else{
? ? ? ? ? const ua = window.navigator.userAgent.toLocaleLowerCase();
? ? ? ? ? const isIOS = /iphone|ipad|ipod/.test(ua);
? ? ? ? ? if(this.scollTop !== null && isIOS){
? ? ? ? ? ? window.scrollTo(0,this.scollTop);
? ? ? ? ? }
? ? ? ? }
? ? ? ? item.open = !item.open;
? ? ? }

item.open = !item.open; 這句代碼就可以實現(xiàn)展開收起功能,其他的代碼是為了解決ios端,展開收起后滾動條位置發(fā)生改變做的處理,上述代碼即可完成展開收起功能!

替換換行符代碼:

contentHtml(content){
? ?return content.replace(/\n/g, "<br/>");
}

下面貼出css代碼

.community-words {
? ? font-size: 32px;
? ? font-family: PingFang SC;
? ? font-weight: 400;
? ? line-height: 60px;
? ? color: rgba(6, 15, 38, 1);
? ? word-wrap:break-word;
? ? word-break:normal;
}
.more-line {
? ? word-break: break-all;
? ? text-overflow: ellipsis;
? ? display: -webkit-box;
? ? -webkit-box-orient: vertical;
? ? -webkit-line-clamp: 5;
? ? overflow: hidden;
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue+OpenLayer為地圖添加風場效果

    Vue+OpenLayer為地圖添加風場效果

    這篇文章主要為大家展示了一個demo,即利用Vue和OpenLayer在地圖上面添加風場效果,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • Vue實現(xiàn)簡單的跑馬燈

    Vue實現(xiàn)簡單的跑馬燈

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)簡單的跑馬燈,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • vue中props值的傳遞詳解

    vue中props值的傳遞詳解

    這篇文章主要介紹了vue中props值的傳遞,在vue中父組件要正向的向子組件傳遞數(shù)據(jù)或者參數(shù),子組件接收到后根據(jù)參數(shù)的不同來進行對應的渲染,這個正向的數(shù)據(jù)傳遞在vue組件中就是通過props來實現(xiàn)的,需要的朋友可以參考下
    2009-05-05
  • 在vue中獲取微信支付code及code被占用問題的解決方法

    在vue中獲取微信支付code及code被占用問題的解決方法

    這篇文章主要介紹了在vue中獲取微信支付code及code被占用問題的解決方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Vue手機號正則匹配姓名加密展示功能的實現(xiàn)

    Vue手機號正則匹配姓名加密展示功能的實現(xiàn)

    這篇文章主要介紹了Vue手機號正則匹配,姓名加密展示,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • vue?beforeDestroy?clearInterval清除定時器失效的解決

    vue?beforeDestroy?clearInterval清除定時器失效的解決

    這篇文章主要介紹了vue?beforeDestroy?clearInterval清除定時器失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue解決跨域問題的幾種方式

    vue解決跨域問題的幾種方式

    這篇文章主要給大家介紹了關于vue解決跨域問題的幾種方式,跨域跨域報錯是前端開發(fā)中非常經(jīng)典的一個錯誤,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Vue 使用超圖SuperMap的實踐

    Vue 使用超圖SuperMap的實踐

    作為一名剛入門計算機語言的人來說,要想快速完成測試開發(fā)地圖項目,肯定要接用到SuperMap,本文主要介紹了Vue 使用超圖SuperMap的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 詳解一次Vue低版本安卓白屏問題的解決過程

    詳解一次Vue低版本安卓白屏問題的解決過程

    這篇文章主要介紹了詳解一次Vue低版本安卓白屏問題的解決過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Vue實現(xiàn)父子組件頁面刷新的幾種常用方法

    Vue實現(xiàn)父子組件頁面刷新的幾種常用方法

    很多時候我們在操作過頁面時候,特別是增刪改操作之后,數(shù)據(jù)會有所改變,本文主要介紹了Vue實現(xiàn)父子組件頁面刷新的幾種常用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

富顺县| 蓬安县| 景洪市| 嘉善县| 蓝田县| 大关县| 宣化县| 大埔区| 宁都县| 连山| 沁阳市| 甘洛县| 湟源县| 康平县| 三门峡市| 伊宁县| 沽源县| 稷山县| 白银市| 和林格尔县| 上饶县| 邻水| 五华县| 西华县| 隆回县| 平顺县| 石林| 天峨县| 厦门市| 平顺县| 沙雅县| 剑阁县| 江西省| 个旧市| 调兵山市| 瓦房店市| 扎兰屯市| 雅江县| 武安市| 舒兰市| 惠来县|