小程序--查看更多和收起功能(原生)

744 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、 场景

最近项目在写小程序,考虑到性能使用纯原生写微信小程序。

有个场景是: 内容过多就显示查看全部按钮,点击可以展开,点击收起就折叠内容,内容少就不显示查看全部按钮。

场景中的内容是web平台端配置编写存在后端的返回的富文本。

如图:

image.png

image.png

2、 思路

考虑查看全部按钮什么时候显示,什么时候不显示;

一般的思路都是这个内容超过一定的高度就隐藏和显示,所有就需要获取到该内容的具体高度。

具体怎么获取呢?

小程序提供了一个API方便咱们使用: wx.createSelectorQuery()

image.png

3、 具体实现

直接上代码:

wxml

考虑一是要控制 查看全部按钮的显示,另外也要考虑是显示查看全部还是收起,则定义了两个变量 more_flag 和 sjFlag

sjFlag : 内容是否过多,过多就显示查看全部按钮,没有则不显示;

more_flag : 内容过多时,控制是显示查看全部按钮还是收起按钮。

image.png

js

先在data里申明下more_flag 和 sjFlag

image.png

根据api wx.createSelectorQuery() 去计算内容是否过多,

设置的height_my = 150 是根据UI设计的,记得自行调整哟!

image.png

这里的判断内容是否过多的 getBoxHeight()方法,一般是放在接口请求到数据之后再去执行,

image.png

最后补上点击查看全部和收起的js方法

image.png

wxss

css的代码也放在最后

image.png

最后:

整体功能没有问题(亲测),代码如果有小瑕疵记得自行调整哈。有疑问欢迎留言交流讨论!