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

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

测试数据自己动手组建


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


//抽奖


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%;

相关文章
|
移动开发 小程序 JavaScript
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
448 12
小程序与快应用:中国移动互联网的渐进式革命——卓伊凡的技术演进观
|
8月前
|
安全 NoSQL API
拼多多:通过微信支付API实现社交裂变付款的技术解析
基于微信JSAPI构建社交裂变支付系统,用户发起拼单后生成预订单与分享链接,好友代付后通过回调更新订单并触发奖励。集成微信支付、异步处理、签名验签与Redis关系绑定,提升支付成功率与裂变系数,实现高效安全的闭环支付。
839 0
|
10月前
|
小程序 安全 JavaScript
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
825 1
构建即时通讯APP内的小程序生态体系:从架构设计到技术实现-优雅草卓伊凡
|
10月前
|
存储 人工智能 小程序
微信掌上医院是如何实现的?智慧掌上医院核心实现原理及关键技术解析
微信掌上医院(智慧医院)小程序源码,基于uni-app与Vue.js开发,集成预约挂号、在线支付、报告查询等功能,支持与医院HIS、医保系统对接,采用微服务架构与多重安全机制。
379 2
|
9月前
|
人工智能 监控 安全
微信怎么无限制加人?有这种技术吗
微信无限制加人技术解析与合规实践指南
|
11月前
|
JSON 安全 定位技术
微信附近人提取v3脚本, 微信附近人id提取技术插件,采集附近人wxid数据工具
本内容介绍微信“附近的人”功能的技术原理与实现方法,基于LBS服务,涉及位置模拟、协议分析及数据解析。通过修改GPS坐标或使用Frida等工具hook位置函数
|
11月前
|
存储 缓存 运维
微信读书十周年,后台架构的技术演进和实践总结
微信读书经过了多年的发展,赢得了良好的用户口碑,后台系统的服务质量直接影响着用户的体验。团队多年来始终保持着“小而美”的基因,快速试错与迭代成为常态。后台团队在日常业务开发的同时,需要主动寻求更多架构上的突破,提升后台服务的可用性、扩展性,以不断适应业务与团队的变化。
422 0
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
3790 11
技术小白如何利用DeepSeek半小时开发微信小程序?
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
人工智能 自然语言处理
使用企业微信或公众号自动回复图片消息
AppFlow支持企业微信和公众号接收图片消息,并提供两种回复方式。方式一:直接回复图片消息,用户发送图片后立即收到回复,但无法继续追问。方式二:先保存图片,待用户发送文字后再一并处理并回复。配置步骤包括选择模板、配置鉴权信息、设置执行动作参数及发布连接流。详细操作可参考相关文档。
1629 1
使用企业微信或公众号自动回复图片消息

热门文章

最新文章