微信小程序連續(xù)簽到7天積分獲得功能的示例代碼
每周每天簽到獲得積分的案例
功能設(shè)計(jì):計(jì)算每天簽到得1分,顯示得到的簽到積分,連續(xù)簽到3天[周一二三]即得+多3分,連續(xù)簽到7天[周一二三四五六日]+多7分,沒有連續(xù)即不顯示多余的3分或7分的提示…


wxml結(jié)構(gòu):
<!--pages/signIn2/signIn2.wxml-->
<view class='sign-new'>
<view class='in'>
<view class='new-head'>
<view class='sig-tl'>
<view class='tln'>已連續(xù)簽到<label class='n'>{{newSignNum}}</label>天</view>
<view class='tlf'>積分:<label class='f'>{{newSignIntegral}}</label></view>
</view>
<!-- 未簽到 -->
<view wx:if='{{!newSignBtnState}}' class='sig-qiu sig-qiu-no' bindtap='bindSignFn' >
<label class='ti'>簽到</label>
</view>
<!-- 已簽到 -->
<view wx:else class='sig-qiu sig-qiu-yes'>
<label class='ti'>已簽到</label>
</view>
</view>
<view class='new-week' >
<view class='we-mod'>
<view class='mo-fen'>
<label class='f f3' wx:if='{{continuityDays3}}'>+3積分</label>
<label class='f f7' wx:if='{{continuityDays7}}'>+7積分</label>
</view>
<view class='mo-line'>
<block wx:for="{{isNewSignedArr}}" wx:for-item="v" wx:key="k">
<label class="q {{v.isSigned?'hover':''}}"></label>
</block>
</view>
<view class='mo-ri'>
<block wx:for="{{isNewSignedArr}}" wx:for-item="v" wx:key="k">
<label class="t">{{v.day}}</label>
</block>
</view>
</view>
</view>
</view>
</view>
js方法:
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
newSignBtnState: false, //按鈕簽到狀態(tài)
continuityDays7: false, //連續(xù)7
continuityDays3: false, //連續(xù)3
myToday: '', //周幾
newSignNum: 0, //簽到天數(shù)
newSignIntegral:0, //簽到積分
//簽到數(shù)組
isNewSignedArr: [
{
"day": "一",
"isSigned": false
},
{
"day": "二",
"isSigned": false
},
{
"day": "三",
"isSigned": false
},
{
"day": "四",
"isSigned": false
},
{
"day": "五",
"isSigned": false
},
{
"day": "六",
"isSigned": false
},
{
"day": "日",
"isSigned": false
}
],
},
//-------點(diǎn)擊簽到---------
bindSignFn(e){
var that = this,
newSignNum = that.data.newSignNum,
today = that.data.myToday;
const arr = [],
newSignArr = [...arr, ...that.data.isNewSignedArr];
//
today = today - 1 > 0 ? today - 1 : 6;
newSignArr[today].isSigned = true;
//當(dāng)前積分
newSignNum++;
var curFen = that.data.newSignIntegral + 1;
that.setData({
newSignBtnState: true,
newSignNum: newSignNum,
newSignIntegral: curFen,
isNewSignedArr: newSignArr,
})
that.signAddFen();
},
//簽到積分函數(shù)
//連續(xù) 天數(shù)-積分: 周三+3:周一,周二,周三(1+1+3=5); 周六+7:周日到周六(1+1+3+1+1+1+7=15)
signAddFen(e) {
var that = this,
oneIsSigned = that.data.isNewSignedArr[0].isSigned,
twoIsSigned = that.data.isNewSignedArr[1].isSigned,
threeIsSigned = that.data.isNewSignedArr[2].isSigned,
fourIsSigned = that.data.isNewSignedArr[3].isSigned,
fiveIsSigned = that.data.isNewSignedArr[4].isSigned,
sixIsSigned = that.data.isNewSignedArr[5].isSigned,
sevenIsSigned = that.data.isNewSignedArr[6].isSigned;
// 另外加分-黃色小框顯示 周三+3 , 周日+7
if (oneIsSigned && twoIsSigned && that.data.myToday == 3) {
that.setData({
continuityDays3: true
})
} else if (oneIsSigned && twoIsSigned && threeIsSigned && fourIsSigned && fiveIsSigned && sixIsSigned && that.data.myToday == 0) {
that.setData({
continuityDays7: true
})
}
//簽到后執(zhí)行
if (that.data.newSignBtnState) {
// 周三 : 一 二 三
if (oneIsSigned && twoIsSigned && threeIsSigned) {
var fens = that.data.newSignIntegral + 3 - 1;
that.setData({
newSignIntegral: fens
})
}
// 所有簽了: 一 二 三 四 五 六 日
if (oneIsSigned && twoIsSigned && threeIsSigned && fourIsSigned && fiveIsSigned && sixIsSigned && sevenIsSigned) {
var fens = that.data.newSignIntegral + 7 - 1;
that.setData({
newSignIntegral: fens
})
}
}
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function (options) {
var that = this,
myDate = new Date(),
myToday = myDate.getDay(); //周幾 0 1 2 3 4 5 6
that.setData({
myToday: myToday
})
that.signAddFen();
},
})
有什么錯(cuò)誤或優(yōu)化的地方,可以提出來,大家一起學(xué)習(xí)研究…
完整案例可訪問本人github:https://github.com/xiexikang/xcx-signIn
ps:
[微信小程序:以7天為周期,連續(xù)簽到7天功能效果]
到此這篇關(guān)于微信小程序連續(xù)簽到7天積分獲得功能的示例代碼的文章就介紹到這了,更多相關(guān)微信小程序簽到功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)簡潔的俄羅斯方塊完整實(shí)例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)簡潔的俄羅斯方塊,以完整實(shí)例形式分析了JavaScript實(shí)現(xiàn)俄羅斯方塊游戲的具體技巧,代碼備有詳盡的注釋便于理解,需要的朋友可以參考下2016-03-03
微信小程序?qū)崿F(xiàn)多選框全選與取消全選功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)多選框全選與取消全選功能,結(jié)合實(shí)例形式分析了微信小程序多選框功能實(shí)現(xiàn)、布局顯示及全選、取消全選相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
javascript讀寫XML實(shí)現(xiàn)廣告輪換(兼容IE、FF)
最近更新網(wǎng)站首頁廣告,ASP.NET的廣告控件很容易實(shí)現(xiàn)這點(diǎn),可首頁是靜態(tài)頁面,聯(lián)想廣告控件的原理決定采用javascript+xml實(shí)現(xiàn)這點(diǎn)方面配置,更新廣告時(shí)只要更新xml即可,方便了廣告輪換2013-08-08
js屏蔽鼠標(biāo)鍵盤(右鍵/Ctrl+N/Shift+F10/F11/F5刷新/退格鍵)
屏蔽鼠標(biāo)右鍵、Ctrl+N、Shift+F10、F11、F5刷新、退格鍵/Alt+ 方向鍵 →等等,太多了就不一一寫來了感興趣的朋友可以了解下啊,希望本文對你有所幫助2013-01-01
scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條并分頁顯示(zepto.js)
這篇文章主要為大家詳細(xì)介紹了scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條并分頁顯示示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
純JavaScript實(shí)現(xiàn)的分頁插件實(shí)例
這篇文章主要介紹了純JavaScript實(shí)現(xiàn)的分頁插件,涉及javascript結(jié)合php動(dòng)態(tài)實(shí)現(xiàn)分頁效果的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
javascript實(shí)現(xiàn)QQ空間相冊展示源碼
本文給大家分享基于javascript制作的qq空間相冊展示效果,涉及到html\css布局思維,浮動(dòng)定位詳解,具體實(shí)現(xiàn)代碼大家參考下本文2017-12-12

