技术心得记录:微信小程序之图片频繁变化,几秒之后输出结果(适用于抽奖)

简介: 技术心得记录:微信小程序之图片频繁变化,几秒之后输出结果(适用于抽奖)

测试数据自己动手组建


先上效果图(动画滚动,体现在代码定时器里)


//抽奖


runLottery() {


const that = this


const {


getLuckyBoxHomepage,


classData,


numType


} = this.data


let openOneRewardFiveData = this.data.openOneRewardFiveData


//关闭确认消耗积分弹框


this.setData({


isshowpop: false,


//试玩数据清空


openOneRewardFiveData: 【】


})


//启动定时器


var inteValTime = setInterval(() => {


var result = 【】


var clickNumber = that.data.clickNumber + 1


if (clickNumber > classData.length - 1) {


clickNumber = 0


}


result.push(classData【clickNumber】)


that.setData({


//商品滚动效果


openOneRewardData: result,


clickNumber


})


// console.log(clickNumber, "clickNumber")


// console.log(this.data.openOneRewardFiveData, "openOneRewardFiveData")


// console.log(this.data.animationStatus, "animationStatus")


}, 450);


//抽奖


this.setData({


openOneRewardFiveData: 【】


})


//可以先用测试数据查看效果


common.request(api, {


luckyBoxId: getLuckyBoxHomepage.id,


//开启1次还是5连抽


counts: numType == 'one' ? 1 : 5,


periods: getLuckyBoxHomepage.periods


}, 'POST').then(res => {


console.log("抽奖", res)


if (res.code == 'SUCCESS') {


if (numType == 'one') {


setTimeout(() => {


that.setData({


openOneRewardFiveData: res.data,


clickNumber: 0,


animationStatus: true,


//显示好的按钮


showBtnStatus: true


})


console.log("openOneRewardFiveData", this.data.openOneRewardFiveData)


clearInterval(inteValTime)


}, 3200)


} else {


var fiveTime = setInterval(() => {


var clickNumber_five = that.data.clickNumber_five


clickNumber_five++


//5连抽会隔0.4秒出现抽奖结果


if (clickNumber_five == 5) {


clearInterval(inteValTime)


clearInterval(fiveTime)


that.setData({


clickNumber_five: -1,


clickNumber: 0


})


return false


}


}, 450)


setTimeout(() => {


var fiveDataTime = setInterval(() => {


var clickNumber_five_data = that.data.clickNumber_five_data


clickNumber_five_data++


if (clickNumber_five_data == 5) {


clearInterval(fiveDataTime)


that.setData({


clickNumber_five_data: -1,


showBtnStatus: true,


})


return false


}


openOneRewardFiveData.push(res.data【clickNumber_five_data】)


that.setData({


openOneRewardFiveData,


animationStatus: true,


clickNumber_five_data,


})


if (openOneRewardFiveData.length == 5) {


this.setData({


showBtnStatus: true


})


}


}, 480)


}, 2300)


}


//开奖弹框


this.setData({


runLotteryStatus: !this.data.runLotteryStatus


})


} else {


//积分不足做处理


}


})


},



[/span>view class="protocol-win { {runLotteryStatus? 'block' : 'none'}}" catchtouchmove="touchmove"

[/span>view class="protocol-content-runLottery"

[/span>view class="market_specialEffects"

[/span>view style="position: relative;top: 17.5%;"

[/span>view class="market_rewardDialog"

[/span>view wx:if="{ {!animationStatus}}" class="runLotteryTitle_five"

[/span>view wx:else class="runLotteryTitle_five"


[/span>view wx:if="{ {numType=='one'}}"

[/span>view wx:if="{ {animationStatus}}" class="{ {animationStatus?'animation':''}}"

[/span>view wx:for="{ {openOneRewardFiveData}}" wx:key="index"

[/span>view class="runLotteryFlex"


[/span>view wx:if="{ {item.level==0 && animationStatus}}"


style="background-image: url('');background-size: 100% 100%;width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;"

[/span>image src="{ {item.image}}" />



[/span>view wx:else

[/span>image src="{ {item.image}}" />




[/span>view class="prizeTitle" wx:if="{ {item.commodityName}}"



[/span>view class="prizeTitle" wx:if="{ {item.prizeName}}"


[/span>view class="prizeTitle" wx:if="{ {item.integral>0}}"

[/span>view class="prizeMoney" wx:if="{ {item.price>0}}"

[/span>text style="font-size: 26rpx;"

//代码效果参考:http://www.lyjsj.net.cn/wx/art_23689.html

[/span>text style="font-size: 48rpx;"


[/span>view class="prizeMoney" wx:if="{ {item.integral>0}}"

[/span>text style="font-size: 26rpx;"

[/span>text style="font-size: 48rpx;"





[/span>view wx:else

[/span>view wx:for="{ {openOneRewardData}}" wx:key="index"

[/span>view class="runLotteryFlex"

[/span>view wx:if="{ {item.level==0 && animationStatus}}"


style="background-image: url('');background-size: 100% 100%;width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;"

[/span>image src="{ {item.image}}" />



[/span>view wx:else

[/span>image src="{ {item.image}}" />




[/span>view class="prizeTitle"

[/span>view class="prizeMoney" wx:if="{ {item.price>0}}"

[/span>text style="font-size: 26rpx;"

[/span>text style="font-size: 48rpx;"


[/span>view class="prizeMoney" wx:if="{ {item.integral>0}}"

[/span>text style="font-size: 26rpx;"

[/span>text style="font-size: 48rpx;"






[/span>view wx:else

[/span>view wx:if="{ {animationStatus}}" class="{ {animationStatus?'animation':''}}"

[/span>view class="runLotteryFlex_five_flex_row"

[/span>view class="runLotteryFlex_five_flex" wx:for="{ {openOneRewardFiveData}}"


wx:key="index"

[/span>view class="runLotteryFlex_five"

[/span>view wx:if="{ {item.level==0 && animationStatus}}"


style="background-image: url('');background-size: 100% 100%;width: 100%;height: 100%;

相关文章
|
11天前
|
移动开发 小程序 JavaScript
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
58 12
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
|
2月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
999 11
技术小白如何利用DeepSeek半小时开发微信小程序?
|
2月前
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
4月前
|
人工智能 自然语言处理
使用企业微信或公众号自动回复图片消息
AppFlow支持企业微信和公众号接收图片消息,并提供两种回复方式。方式一:直接回复图片消息,用户发送图片后立即收到回复,但无法继续追问。方式二:先保存图片,待用户发送文字后再一并处理并回复。配置步骤包括选择模板、配置鉴权信息、设置执行动作参数及发布连接流。详细操作可参考相关文档。
使用企业微信或公众号自动回复图片消息
|
4月前
|
存储 缓存 关系型数据库
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
微信红包本质是小额资金在用户帐户流转,有发、抢、拆三大步骤。在这个过程中对事务有高要求,所以订单最终要基于传统的RDBMS,这方面是它的强项,最终订单的存储使用互联网行业最通用的MySQL数据库。支持事务、成熟稳定,我们的团队在MySQL上有长期技术积累。但是传统数据库的扩展性有局限,需要通过架构解决。
105 18
|
4月前
|
敏捷开发 开发框架 小程序
微信纯血鸿蒙版正式发布,295天走完微信14年技术之路!
不管外界如何评价和鞭策,这款产品本身,依然需要研发团队一个键一个键敲出来,从内核,到架构,到内测,到公测,再到一轮一轮的 debug,他们要在不到一年的时间里,走完微信14 年的路。 回顾鹅厂所做过的产品里,也许从未有过一款,被如此放在放大镜下凝视。每一次上架,每一个 bug,乃至于每一个里程碑,几乎都预定当天热搜。
171 6
微信纯血鸿蒙版正式发布,295天走完微信14年技术之路!
|
4月前
|
存储 缓存 监控
社交软件红包技术解密(四):微信红包系统是如何应对高并发的
本文将为读者介绍微信百亿级别红包背后的高并发设计实践,内容包括微信红包系统的技术难点、解决高并发问题通常使用的方案,以及微信红包系统的所采用高并发解决方案。
142 13
|
4月前
|
存储 监控 容灾
社交软件红包技术解密(五):微信红包系统是如何实现高可用性的
本次分享介绍了微信红包后台系统的高可用实践经验,主要包括后台的 set 化设计、异步化设计、订单异地存储设计、存储层容灾设计与平行扩缩容等。听众可以了解到微信红包后台架构的设计细节,共同探讨高可用设计实践上遇到的问题与解决方案。
97 5
|
4月前
|
JavaScript
jQuery+HTML5实现的微信大转盘抽奖源码
这是一款基于jQuery+HTML5实现的微信大转盘抽奖效果源码,是一款可配置奖品抽奖的jQuery大转盘抽奖代码,可实现点击按钮转轮旋转实现抽奖功能,效果逼真自然,代码里面有详细的注释,可以修改文字或者二次开发都可以
98 11
|
5月前
|
监控 算法 测试技术
即时通讯技术文集(第45期):微信、QQ技术精华合集(Part2) [共14篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第45 期。
84 3

热门文章

最新文章