滚动定位,丝滑实现元素站C位
随着小程序生态的蓬勃发展,越来越多商家通过小程序落地运营活动,例如抽奖活动。不同的运营活动要求开发者
微信开发者 2023-05-11 14:22:22
随着小程序生态的蓬勃发展,越来越多商家通过小程序落地运营活动,例如抽奖活动。不同的运营活动要求开发者灵活开发,实现快速上线。
以滚动抽奖活动为例,当用户点击抽奖按钮时,奖品定时滚动,最终得奖内容将自动显示在屏幕中间,便于用户直观看到抽奖结果。
(相关资料图)
例如用户点击「免费夺宝」按钮,上方图片滚动播放。倒计时结束,获奖内容将会自动显示在中间,如上图的「组队成功2」。
然而实现以上过程并不简单。开发者既需要实现灵活的滚动效果,也需要控制最终奖品的位置。下面一起来看看如何快速实现滚动+定位的能力!
实现原理解析
为了实现「滚动+定位」的效果,开发者需要考虑 3 个变量:
足够大且固定的奖品距离:如果滚动距离比较小,滚动效果很快结束,缺少丝滑滚动的效果;
抽中奖品的下标索引:用于标记抽中的奖品;
抽中奖品的偏移量:用于准确控制抽中奖品的出现位置。
具体实现方法
1、如何设置足够大且固定的奖品距离?
开发者可以以一个奖池整体宽度为滚动周期,例如上述免费夺宝的奖池一共有 5 个奖品,每个奖品的宽度设置成 itemwidth,则奖池整体宽度为 5 * itemwidth,滚动 5 圈即可。
通过奖池整体宽度为滚动周期的好处是:不会改变原来奖品的定位。例如一屏展示 4 个奖品,滚动 2 个周期,即可实现定位不变。
2、如何获取抽中奖品的下标索引 & 偏移量?
首先开发者对下标索引和偏移量分别进行命名 index 和 offset。继续以上述免费夺宝活动为例,假设抽中奖品 4 ,那么下标索引 index 为4,滚动 (index - 1) * itemWidth 距离。
然后,开发者需要将奖品 4 出现在第一个奖励位置,接着出现在第二个奖励位置,因此先设置向右前进一个周期,即 5 * itemwidth,然后再后退 1 个 itemwidth。
最后,以抽奖滚动的距离设置为 distance,奖品个数设置为 n,单个奖品的宽度为 itemwidth,中奖下标索引为 index,计算方法为:
distance = (n * 5 + index - 1 + n - 1) * itemWidth
通过巧妙设置距离位置,奖品能够在小程序实现丝滑滚动、精准定位的效果。开发者实现效果更快速,用户体验更好。
如有其他小程序相关的问题,可在 发帖互动,技术专员将为大家解答及进行深度交流。
原创|腾讯前端开发工程师banniyang
随着小程序生态的蓬勃发展,越来越多商家通过小程序落地运营活动,例如抽奖活动。不同的运营活动要求开发者
5月10日,记者从2023中国国际大数据产业博览会执委会了解到,今年数博会“数博发布”活动面向社会征集的100
36氪获悉,移卡公布2023年第一季度主要经营数据,其中一站式支付服务GPV(总支付交易量)达6754亿元人民币
同花顺金融研究中心5月11日讯,有投资者向贝泰妮提问,这么好的产品,总感觉宣传力度欠缺,有很多敏感肌肤
1、谢你让我这么爱你词曲:汪一平谢谢你让我这么爱你再也不需要有人代替谢谢你给我这段感情让我不知不觉发现
山东省福彩中心副主任王庆林致发布辞近日,山东省福彩中心举办发布仪式,发布了针对青年群体的山东福彩“青
直播吧5月11日讯NBA东部半决赛G5,尼克斯主场112-103逆转热火,系列赛大比分扳成2-3。赛后巴雷特接受了媒体
国家粮食和物资储备局:我国口粮自给率超100%,谷物自给率超95%:据中国网,国家粮食和物资储备局局长丛
和元生物(688238)05月11日在投资者关系平台上答复了投资者关心的问题。
5月11日上午,海南省防汛防风防旱总指挥部启动防汛防风Ⅳ级应急响应。海南省气象局于5月11日6时20分发布暴
9日上午,位于通州湾的蓝水港务海工及风电装备制造项目现场,2台强夯机正在强夯,施工人员加紧修建便道。“
记者管克江摄阿拉伯旅游市场展日前在阿联酋迪拜世界贸易中心举行,来自150多个国家和地区的2000多家展商参
谷歌推出AI视频对口型技术:根据翻译语言改变人物说话方式,翻译,谷歌,口型,说话者,ai视频
北京时间5月10日21时22分,伴随着一阵山呼海啸般的巨响,长征七号运载火箭宛如一条巨龙,托举着天舟六号货
生钱资产是指能够给投资者持续带来现金流的资产,例如股票、可转债、基金等投资品,可以通过出租、出售等方