红包抽奖H5

引言

最近,为逗女朋友开心给女朋友写了一个红包抽奖H5小应用,是一个纯前端的小应用,主要用了vue、layer.js、fakeLoader.js、jQuery.cookie.js等框架和插件,效果看下面的展示
这可以说是程序员撩妹神器 [滑稽脸],需要的去我的下载资源下载[附链接]:https://download.csdn.net/download/angellover2017/10701989

效果展示

在这里插入图片描述

代码实现

功能实现很简单,无非是两个0-9的随机数组成0-99的100个数字的随机数列,然后可以通过对数字范围的判断做抽奖的概率,比如数字个位为8的可以抽到什么奖…
麻烦的在于前端的一些骚操作,这里对这个H5使用到的框架和插件,给出demo实例:

fakeLoader.js:

这个主要是为了做一个抽奖加载的效果,其实运算只需要毫秒级的时间,为了让抽奖过程看起来更真实,加入一个好像正在加载的效果

$("#loading").fakeLoader({
       bgColor : "#DD0625"
      })

fakeLoader官方给出了很多可配置的属性:
若想让fakeloader每个挂载点加载多次,则需要修改fakeloader.js文件,在settings加入display : '',在initStyles加入'display' : settings.display


var settings = $.extend({
            timeToHide:1200, // Default Time to hide fakeLoader
            pos:'fixed',// Default Position
            top:'0px',  // Default Top value
            left:'0px', // Default Left value
            width:'100%', // Default width 
            height:'100%', // Default Height
            zIndex: '999',  // Default zIndex 
            bgColor: '#2ecc71', // Default background color
            spinner:'spinner7', // Default Spinner
            display : '', //这里是解决fakeloader默认只能加载一次的问题
            imagePath:'' // Default Path custom image
        }, options);

 var initStyles = {
            'position':settings.pos,
            'width':settings.width,
            'height':settings.height,
            'top':settings.top,
            'left':settings.left,
            'display' : settings.display //这里是解决fakeloader默认只能加载一次的问题
        };
layer.js:

这个主要是为了做一个红包弹窗的效果


layer.open({
                      type: 2,
                      title: '奖项',
                      shadeClose: true,
                      shade: 0.8,
                      area: ['255px', '360px'],
                      content: "hongbao.html" ,//iframe的url
                       success: function(layero,index)
                       {
                       var text = layer.getChildFrame('#text',index);
                        if(a==6 && b==6){
                         text.text("500元,恭喜老婆!")
                        }else if(b==2){
                         text.text("200元,已经是2等奖了,脚气不错!")
                        }else if(b==8 || (b==6&&a!=6)){
                         text.text("100元,鼓励一下!")
                        }else if(b==7 || b==9 || b==1){
                         text.text("满足吕先生一个要求,嘻嘻")
                        }else if(b==3 || b==4){
                         text.text("满足熊小姐一个愿望,嘻嘻")
                        }else{
                         text.text("老婆,我爱你")
                        }
                        }
                   })
jquery.cookie.js:

这里使用cookie主要是为了加入一个活动倒计时的效果,使用setInterval()我们知道可以周期性执行函数或表达式,但是如何让倒计时自动停止呢?
这个就需要加入cookie,缓存记录当前倒计时的时间点,然后当到时间点时,使用clearInterval()就可以停止计时

//如果第一次访问设置cookie ,如果不是第一次访问读取cookie
    if($.cookie('activity') == null){
     $.cookie('activity',that.time,{ expires: 7 })
    }else{
     that.time = $.cookie('activity')
    }
    that.interval_id = setInterval(function(){
      that.time--
     },1000)

在vue的watch中侦听时间节点:

   watch : {
    //侦听time
    time : function(){
     var that = this
     $.cookie('activity',that.time,{ expires: 7 })
     if(this.time == 0){
      window.clearInterval(that.interval_id)
      layer.alert("活动结束")
     }
    }
   }

【注意】以上代码不是连续的,是从源码中截取的做展示,有需要撩妹的,去我的下载里下载源码:

https://download.csdn.net/download/angellover2017/10701989

做个引流?

博主最近开了一个微信公众号,以全栈技术为初衷,里面会分享我自己写的认为比较好的原创文章,博客会部分同步,感谢关注!
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

angelavor

觉得有收获,给我个三连吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值