本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1、 场景
最近项目在写小程序,考虑到性能使用纯原生写微信小程序。
有个场景是: 内容过多就显示查看全部按钮,点击可以展开,点击收起就折叠内容,内容少就不显示查看全部按钮。
场景中的内容是web平台端配置编写存在后端的返回的富文本。
如图:
2、 思路
考虑查看全部按钮什么时候显示,什么时候不显示;
一般的思路都是这个内容超过一定的高度就隐藏和显示,所有就需要获取到该内容的具体高度。
具体怎么获取呢?
小程序提供了一个API方便咱们使用: wx.createSelectorQuery()
3、 具体实现
直接上代码:
wxml
考虑一是要控制 查看全部按钮的显示,另外也要考虑是显示查看全部还是收起,则定义了两个变量 more_flag 和 sjFlag
sjFlag : 内容是否过多,过多就显示查看全部按钮,没有则不显示;
more_flag : 内容过多时,控制是显示查看全部按钮还是收起按钮。
js
先在data里申明下more_flag 和 sjFlag
根据api wx.createSelectorQuery() 去计算内容是否过多,
设置的height_my = 150 是根据UI设计的,记得自行调整哟!
这里的判断内容是否过多的 getBoxHeight()方法,一般是放在接口请求到数据之后再去执行,
最后补上点击查看全部和收起的js方法
wxss
css的代码也放在最后
最后:
整体功能没有问题(亲测),代码如果有小瑕疵记得自行调整哈。有疑问欢迎留言交流讨论!