微信小程序以7天为周期连续签到7天功能效果的示例代码


Posted in Javascript onAugust 20, 2020

此功能以1,2,3,4,5,6,7这样为一周期,连续签到的功能;
通过计算是否为整除7天计算,每7天后切换数目,从而改变周期表、

本案例只是提供案例的基本操作,进一步涉及:每日用户集的监听(日历表,签到统计,连续签到,签到中断,后端数据处理)等等功能需自行在搞掂哈~

如果图如下:

微信小程序以7天为周期连续签到7天功能效果的示例代码微信小程序以7天为周期连续签到7天功能效果的示例代码

wxml结构

<!--pages/signIn/signIn.wxml-->
<view class='signIn'>
 <view class='sign-com'>
 <view class='thead'>
 <view class='tt'>已连续签到</view>
 <view class='mm'><label class='n'>{{signNum}}</label>天</view>
 <view class='pp'>连续签到7日后每日得3分</view>
 </view>
 <view class='modle'>
 <view class='mol'>
 <view class='mol-line'></view>
 <view class='mol-ites'>
 <view class="ite {{signNum>=min?'hover':''}}" data-n='{{min}}'>
 <label class='n'>+{{min<7?1:3}}</label>
 </view>
 <view class="ite {{signNum>=min+1?'hover':''}}" data-n='{{min+1}}'>
 <label class='n'>+{{min+1<7?1:3}}</label>
 </view>
 <view class="ite {{signNum>=min+2?'hover':''}}" data-n='{{min+2}}'>
 <label class='n'>+{{min+2<7?1:3}}</label>
 </view>
 <view class="ite {{signNum>=min+3?'hover':''}}" data-n='{{min+3}}'>
 <label class='n'>+{{min+3<7?1:3}}</label>
 </view>
 <view class="ite {{signNum>=min+4?'hover':''}}" data-n='{{min+4}}'>
 <label class='n'>+{{min+4<7?1:3}}</label>
 </view>
 <view class="ite {{signNum>=min+5?'hover':''}}" data-n='{{min+5}}'>
 <label class='n'>+{{min+5<7?1:3}}</label>
 </view>
 <view class="ite {{signNum>=min+6?'hover':''}}" data-n='{{max}}'>
 <label class='n'>+{{min+6<7?1:3}}</label>
 </view>
 </view>
 </view>
 <view class='moday'>
 <label class='dd'>{{min}}天</label>
 <label class='dd'>{{min+1}}天</label>
 <label class='dd'>{{min+2}}天</label>
 <label class='dd'>{{min+3}}天</label>
 <label class='dd'>{{min+4}}天</label>
 <label class='dd'>{{min+5}}天</label>
 <label class='dd'>{{max}}天</label>
 </view>
 </view>

 <view class='the-btn'>
 <button type='button' class='btn' bindtap='bindSignIn' data-num="{{signNum}}" disabled='{{signState}}'
 data-min="{{min}}" data-max="{{max}}" data-be="{{be}}"
 >签到</button>
 </view>
 </view>
</view>

<view class='explax'>
 <view class=''>日期开始:{{min}} </view>
 <view class=''>日期结束:{{max}} </view>
 <view class=''>签到数:{{signNum}}天</view>
 <view class=''>切换周期的倍数:{{be}}</view>
</view>

js功能

// pages/signIn/signIn.js
//获取应用实例
const app = getApp();

Page({

 /**
 * 页面的初始数据
 */
 data: {
 //img_url: config.imgUrl, //图片地址

 //签到模块
 signNum: 0, //签到数
 signState: false, //签到状态
 min: 1, //默认值日期第一天1
 max: 7, //默认值日期最后一天7
 be: 0 //默认倍数


 },

 //签到
 bindSignIn(e) {
 var that = this,
 num = e.currentTarget.dataset.num;
 num++
 wx.showToast({
 icon: 'success',
 title: '签到成功',
 })
 that.setData({
 signNum: num,
 //signState: true
 })

 var min = e.currentTarget.dataset.min,
 max = e.currentTarget.dataset.max,
 be = e.currentTarget.dataset.be;

 if (num % 7 == 0) {
 be += 1;
 that.setData({
 be: be
 })
 }

 if (num == 7 * be + 1) {
 that.setData({
 min: 7 * be + 1,
 max: 7 * be + 7
 })
 }

 },


})

有什么错误或优化的地方,可以提出来,大家一起学习研究…

完整案例可访问本人github:https://github.com/xiexikang/xcx-signIn

参考:

到此这篇关于微信小程序以7天为周期连续签到7天功能效果的示例代码的文章就介绍到这了,更多相关微信小程序连续签到7天内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
js 弹出菜单/窗口效果
Oct 30 Javascript
jQuery中大家不太了解的几个方法
Mar 04 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
ReactNative短信验证码倒计时控件的实现代码
Jul 20 Javascript
Vue 2.0学习笔记之Vue中的computed属性
Oct 16 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
javascript实现小型区块链功能
Apr 03 Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 jQuery
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 #Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
Aug 20 #Javascript
JavaScript 空间坐标的使用
Aug 19 #Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
Aug 19 #Javascript
jQuery实现评论模块
Aug 19 #jQuery
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 #Javascript
jQuery实现简单评论功能
Aug 19 #jQuery
You might like
PHP4引用文件语句的对比
2006/10/09 PHP
用php来检测proxy
2006/10/09 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
php计算税后工资的方法
2015/07/28 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
validator验证控件使用代码
2010/11/23 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
详解python while 函数及while和for的区别
2018/09/07 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python实现学员管理系统
2019/02/26 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
Python实现疫情地图可视化
2021/02/05 Python
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
医学生自荐信
2013/12/03 职场文书
村官学习十八大感想
2014/01/15 职场文书
学校四群教育实施方案
2014/06/12 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
工人先锋号申报材料
2014/12/29 职场文书
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技