前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序- SaUi 之tab的完善

小程序- SaUi 之tab的完善

原创
作者头像
ss1121
修改2019-05-23 17:39:33
3740
修改2019-05-23 17:39:33
举报
文章被收录于专栏:aotooaotooaotoo

距离上次更新已经是一个星期前了,在这段时间里,只要我闲下来,都在折腾我最新更新的功能tab组件的完善,虽然说还不是百分之百分的完美,但是80分总有的吧…

先说下我这次更新的功能吧 1 滚动切换标题,并监控标题是否超过屏幕显示的范围使其滚动到屏幕内(tab组件) 2 点击标题内容滚动到相应的位置,并监控标题是否超过屏幕显示的范围使其滚动到屏幕内(tab组件)(tab组件) 3 小程序识别不了普通的二维码,但是支持赞赏码,页面放在我的页面,大家可以试试~~~~~~~

遗留个问题,因为是滚动到指定的节点才去更新标题栏的状态,所以滚动快的时候,标题栏会慢一点,待解决…

最后,我想吐槽吐槽关于tab实现过程中我遇到的坑…

首先,组件内容是获取不到wx.createSelectorQuery()的,查了文档后说添加in(this),可是可是…大家有遇到有添加了这个也没用的问题么!!返回是null…后面的后面才发现,如果是组件套组件的话,需要跨自定义组件的后代选择器:select(’.the-ancestor >>> .the-descendant’).boundingClientRec(),一定要用上的……好吧,说起来好像又好简单~。 贴上部分代码

created: function () {
	this.query = wx.createSelectorQuery().in(this)      //获取节点需要的
},
ready: function() {
	let $contentQuery = []
	for(let i = 0; i < ds.data.length; i++) {
		this.query.select(''.tab-container >>> #tabs-+i).boundingClientRect()
	}
	this.query.exec(function (res) {
		$contentQuery = res
	})

	setTimeout(() => {		//$contentQuery 会比exec()先执行,如果不定时,有可能会取不到值.......
		this.getValue = $contentQuery
	}, 100);
}

获取到节点后,剩下的就是大量的计算了,比如点击时,内容的跳转,标题栏的是否需要滚动。再比如滚动时,标题栏的切换,以及是否需要滚动标题栏

Tabs 组件-scroll

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档