【uniapp】CSS實現多行文本展開收起的文字環繞效果

1. 效果圖

  • 收起狀態
    在這里插入圖片描述

  • 展開狀態
    在這里插入圖片描述

2. 代碼實現

<view class="word-wrap" id="descriptionTxt"><view class="fold-text" v-if="isFold"><text class="fold-btn" @click="changFold">全文</text><text>{{ describe || '' }}</text></view><view class="unfold-text" v-if="!isFold"><text>{{ describe || '' }}</text><text v-if="showFold" style="color: #bdc1c5; float: right; margin-left: 10rpx" @click="changFold">收起</text></view>
</view>
data: {return {describe: '', // 動態獲取文本內容showFold: false, // 是否展示全文/收起isFold: false, // 右下角文字:true-全文 false-收起}
}methods: {// 判斷文本是否超過五行,默認展開checkTextLines() {const query = uni.createSelectorQuery().in(this)query.select('#descriptionTxt').boundingClientRect(res => {// 獲取文本內容的高度const contentHeight = res.heightconst lineHeight = rpxTopx(46) // 文字的行高const lines = Math.ceil(contentHeight / lineHeight)// 判斷文本行數是否達到了5行if (lines > 5) {this.showFold = true} else {this.showFold = false}}).exec()},// 切換展開/收起changFold() {this.isFold = !this.isFold}
}
.word-wrap {display: flex;// 收起狀態.fold-text {font-size: 28rpx;color: #484848;line-height: 46rpx;text-align: justify;word-break: break-all;line-break: anywhere;white-space: pre-wrap;display: -webkit-box;overflow: hidden;-webkit-line-clamp: 5;-webkit-box-orient: vertical;}.fold-text::before {content: '';float: right;width: 0;/* 用整個容器高度減去按鈕的高度,發現高度失效了,這里需要給 .fold-text 包裹一層,然后設置 display: flex *//* height: calc(100% - 46rpx); *//* 或者用margin負值來實現(性能會比 calc 略好一點) */height: 100%;margin-bottom: -46rpx;}.fold-btn {color: #bdc1c5;float: right;clear: both;margin-left: 10rpx;}// 未收起狀態.unfold-text {font-size: 28rpx;color: #484848;line-height: 46rpx;text-align: justify;word-break: break-all;line-break: anywhere;white-space: pre-wrap;}
}

經測試:部分機型會有bug,后面就沒用這種方法了,不知道大家有沒有更好的方法實現這種效果,歡迎留言~。

具體原理請參考大佬文章:前端實現超出文字顯示展開收起的功能

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

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

相關文章

【網絡安全】Linux 應急響應-溯源-系統日志排查知識點

Linux 應急響應-溯源-系統日志排查知識點匯總 1. 查看當前已經登錄到系統的用戶 (w 命令) w2. 查看所有用戶最近一次登錄 (lastlog 命令) lastlog lastlog | grep -v "Never logged in"3. 查看歷史登錄用戶以及登錄失敗的用戶 (last 和 lastb 命令) last lastb4. …

使用docker完整搭建前后端分離項目

1、docker的優勢&#xff0c;為啥用docker 2、docker的核心概念 鏡像【Image】- 只讀模板 容器【Container】- 運行鏡像的一個外殼&#xff0c;相當于一個獨立的虛擬機 倉庫【repository】- 鏡像的管理工具&#xff0c;可公開&#xff0c;可私有&#xff1b;類似git倉庫 3、c…

【前端】js通過元素屬性獲取元素

【前端】js通過元素屬性獲取元素 <div for"hc_opportunity_config">aaaaa</div>//通過屬性獲取元素document.querySelector([for"hc_opportunity_config"]) document.querySelector([屬性"屬性值"])

操作教程|通過DataEase開源BI工具對接金山多維表格

前言 金山多維表格是企業數據處理分析經常會用到的一款數據表格工具&#xff0c;它能夠將企業數據以統一的列格式整齊地匯總至其中。DataEase開源數據可視化分析工具可以與金山多維表格對接&#xff0c;方便企業更加快捷地以金山多維表格為數據源&#xff0c;制作出可以實時更…

包拯斷案 | MySQL5.7替換路上踩過的坑 一鍵get解決辦法@還故障一個真相

提問&#xff1a;作為DBA運維的你&#xff0c;是否有過這些煩惱 1、業務系統進行替換投產時&#xff0c;發現數據庫回放并行度低 2、雖然2個數據庫集群使用同一份數據&#xff0c;卻在關閉雙一后&#xff0c;二級從庫的回放效率依舊緩慢&#xff0c;不知是什么原因&#xff1f…

機器人開源項目分享,助力一戶一機器人

最初&#xff0c;因隋煬帝思念心切&#xff0c;命工匠按照柳抃的形象制作了木偶機器人&#xff0c;被認為是歷史上最早的機器人之一。這些木偶機器人通過精巧設計的機關&#xff0c;能夠執行坐、起、拜、伏等動作。 如今&#xff0c;隨著科技的發展&#xff0c;機器人已經廣泛…

從ES5邁向ES6:探索 JavaScript 新增聲明命令與解構賦值的魅力

個人主頁&#xff1a;學習前端的小z 個人專欄&#xff1a;JavaScript 精粹 本專欄旨在分享記錄每日學習的前端知識和學習筆記的歸納總結&#xff0c;歡迎大家在評論區交流討論&#xff01; ES5、ES6介紹 文章目錄 &#x1f4af;聲明命令 let、const&#x1f35f;1 let聲明符&a…

Linux磁盤初始化與fstab文件更新

環境&#xff1a; Redhat 7.9 本文操作&#xff1a; >>給disk設置分區 &#xff08;fdisk&#xff09; >>給disk設置file system格式 (mkfs ) >>創建路徑&#xff0c;并將disk mount上(mkdir和mount ) >>修改fstab文件 初始化Disk 初始化前&#xff…

Vue組件通信 - 組件傳值 / 什么是組件

1.什么是組件通信&#xff1a; 組件&#xff08;.vue&#xff09;通過某種方式來傳遞信息以達到某個目的 2.組件通信可以解決什么問題&#xff1a; 每個組件之間都有獨立的作用域&#xff0c;組件間的數據是無法共享的&#xff0c;但在實際開發中我們常常需要讓組件之間共享…

【計算機網絡原理】對傳輸層TCP協議的重點知識的總結

?????? write in front ??????? ?????????大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之處請多多諒解&#xff0c;讓我們一起共同進步????? . ?? ?xiaoxie?????????—CSDN博客 本文由xiaoxie????????? 原創 CSDN 如…

Spring Bean Map漫游:遍歷背后的生命周期奧秘

1. 引言 在Spring框架中&#xff0c;Bean的生命周期是一個復雜而精妙的過程。其中&#xff0c;遍歷存儲Bean實例的Map&#xff08;通常是DefaultSingletonBeanRegistry中的singletonObjects&#xff09;是這一過程中的重要環節。理解這個遍歷過程以及它在Bean生命周期中的作用…

桌面文件不見了怎么恢復?五種方法解決文件恢復難題,建議收藏

不小心誤刪除了桌面文件&#xff0c;導致文件丟失。事實上誤刪的文件并沒有被永久刪除&#xff0c;而是被移動到了回收站中&#xff0c;可以恢復這些文件。本文將分享多種方法&#xff0c;具體步驟如下。 方法一&#xff1a;從回收站中恢復 大多數操作系統都有回收站或垃圾桶的…

【C語言】結構體內存對齊:熱門面試話題

&#x1f525;引言 書接上文&#xff0c;我們了解關于結構體的基本知識&#xff0c;這篇將深入剖析結構體中一個重要的知識點:內存對齊 關于內存對齊是屬于熱門面試話題&#xff0c;對此單獨放在一篇來分享 &#x1f308;個人主頁&#xff1a;是店小二呀 &#x1f308;C語言筆記…

3D工業視覺

前言 本文主要介紹3D視覺技術、工業領域的應用、市場格局等&#xff0c;主要技術包括激光三角測量、結構光、ToF、立體視覺。 一、核心內容 3D視覺技術滿足工業領域更高精度、更高速度、更柔性化的需求&#xff0c;擴大工業自動化的場景。 2D視覺技術基于物體平面輪廓&#…

軟件無線電學習-第二代移動通信系統過程理解

本文知識內容摘自《軟件無線電原理和應用》 無線通信領域讓大家感受最深的是民用移動通信的快速發展。民用移動通信在短短的二十年時間里已發展了三代&#xff1a;20世紀80年代的模擬體制(TACS/AMPS)為第一代移動通信(簡稱1G)&#xff1b;20世紀90年代的數字體制(GSMCDMATDMA)…

Git提交和配置命令

一、提交代碼到倉庫 在軟件開發中&#xff0c;版本控制是一個至關重要的環節。而Git作為目前最流行的版本控制系統之一&#xff0c;為我們提供了便捷高效的代碼管理和協作工具。在日常開發中&#xff0c;我們經常需要將本地代碼提交到遠程倉庫&#xff0c;以便于團隊協作和版本…

2024電工杯數學建模B題思路模型代碼

完整內容更新見文末名片 B 題&#xff1a;大學生平衡膳食食譜的優化設計及評價 大學時代是學知識長身體的重要階段&#xff0c;同時也是良好飲食習慣形成的重要時期。這一特 定年齡段的年輕人&#xff0c;不僅身體發育需要有充足的能量和各種營養素&#xff0c;而且繁重的腦…

Java基礎教程 - 9 集合

更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 更好的閱讀體驗&#xff1a;點這里 &#xff08; www.doubibiji.com &#xff09; 9 集合 什么是集合&…

【stm32/CubeMX、HAL庫】嵌入式實驗六:定時器(2)|PWM輸出

參考&#xff1a; 【【正點原子】手把手教你學STM32CubeIDE開發】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系統基礎與實踐》劉黎明等編著&#xff0c;第九章定時器&#xff0c…

愛普生TG5032SFN溫補晶振在機器人控制中的應用

機器人控制是機器人技術的核心組成部分&#xff0c;它涉及通過傳感器采集外部環境信息&#xff0c;然后經過信號處理、運動規劃和執行控制等步驟&#xff0c;最終實現機器人的運動控制和任務執行。在技術的不斷更選&#xff0c;機器人控制也在不斷進步和演變。智能化機器人具備…