前言
最近做小程序里面一个文本的展开与折叠功能 最开始是不管文本有没有超出都会把折叠按钮展示出来感觉很不优雅所以就是优化 主要用到一个小程序操作节点的方法
实现步骤:同时渲染两个节点一个是完整的文本节点一个是展示省略的文本节点
然后将完整的文本节点设置未透明然后在设置一个定位 让他脱离文档流
然后使用小程序createSelectorQuery 方法来获取实际节点的高度 如果高度超出了预定的行数高度这展示按钮否则隐藏按钮
一、实现代码
data() {
return {
//控制折叠与隐藏的
showAllFlag: true,
// 控制按钮是否展示
isShowBtn: false
}
},
let query = uni.createSelectorQuery();
query.select(`#sub-desc-content2`).boundingClientRect(rect=>{
if(rect.height >= 40) {
this.isShowBtn = true
}else {
this.isShowBtn = false
}
}).exec();
实现逻辑就是这样 代码大致也是这样 也算是实现曲线救国了