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

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

测试数据自己动手组建


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


//抽奖


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

相关文章
|
6天前
|
存储 监控 算法
社交软件红包技术解密(三):微信摇一摇红包雨背后的技术细节
本文将由微信团队工程师张文瑞分享微信春节摇一摇红包技术背后的方方面面,希望能给同行们带来启发。
22 1
|
2月前
|
存储 监控 容灾
微信技术总监谈架构:微信之道——大道至简(演讲全文)
在技术架构上,微信是如何做到的?日前,在腾讯大讲堂在中山大学校园宣讲活动上,腾讯广研助理总经理、微信技术总监周颢在两小时的演讲中揭开了微信背后的秘密。 周颢把微信的成功归结于腾讯式的“三位一体”策略:即产品精准、项目敏捷、技术支撑。微信的成功是在三个方面的结合比较好,能够超出绝大多数同行或对手,使得微信走到比较前的位置。所谓产品精准,通俗的讲就是在恰当的时机做了恰当的事,推出了重量级功能,在合适的时间以最符合大家需求的方式推出去。他认为在整个微信的成功中,产品精准占了很大一部分权重。
59 1
微信技术总监谈架构:微信之道——大道至简(演讲全文)
|
30天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【10月更文挑战第3天】微信小程序作为新兴应用形态,凭借便捷体验与社交传播能力,成为企业拓展业务的新渠道。本文探讨了微信小程序全栈开发中的PWA技术应用,包括离线访问、后台运行、桌面图标及原生体验等方面,助力开发者提升小程序性能与用户体验。PWA技术在不同平台的兼容性、性能优化及用户体验是实践中需注意的关键点。
50 5
|
26天前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
401 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
2月前
|
程序员 数据库 UED
微信也在用的消息时序性技术,你知道多少?
本文由程序员小米撰写,探讨了在个人项目中如何保证消息的时序性。文章详细介绍了消息时序性的概念及其重要性,并提出了三种方案:ID设计(借鉴微信号段与跳跃式生成)、单聊场景下的单点序列化同步,以及群聊场景中的单点序列化处理。此外,还提供了多种优化方法,如消息时序对齐、本地时序记录等,帮助读者更好地解决消息乱序问题。适合所有关心即时通讯和社交应用技术细节的开发者阅读。
45 4
|
2月前
|
小程序
小程序消除图片下边距的三个方法
小程序消除图片下边距的三个方法
47 11
|
26天前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
36 0
|
3月前
|
小程序 前端开发 JavaScript
【电商新机遇】支付宝小程序如何助你打造爆款电商解决方案?揭秘背后的技术奥秘!
【8月更文挑战第27天】本文详细介绍如何利用支付宝小程序构建电商应用,覆盖从项目初始化、页面设计、功能开发到数据分析的全流程。首先,需注册开发者账号并安装相关工具;随后创建项目,并按示例配置基本页面结构;接着设计商品列表等界面布局;再实现商品展示等功能;最后运用支付宝提供的工具进行数据分析,以优化用户体验及营销策略。跟随本教程,您将能打造出一款完整的电商小程序。
88 1
|
3月前
|
小程序 前端开发
|
3月前
|
运维 小程序 前端开发
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决