微信随机红包

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>仿微信抢红包</title>
<style>
html,body,div{margin:0;padding:0;}
body{background:#EAEAEA;font:16px/1.8 "微软雅黑";padding-bottom:20px}
input{margin:0;display:inline-block;border:1px solid #ddd;padding:4px 2px;font-size:16px;font-family:"微软雅黑";margin-right: 5px;}
input:focus{border-color:#3C9BD1;outline:none;}

.wrap,.list { margin: 50px auto; width: 300px;}
.title{ font-size: 42px; color: #464646;text-align: center;}
.line{height:40px;line-height:40px;text-align: center;}
.btn{display:block;background:#3C9BD1;color:#fff;line-height: 40px;height:40px;text-align: center;width:200px;margin:0 auto;margin-top:50px;text-decoration: none;transition:all .3s linear;border-radius: 2px;}
.btn:hover{opacity:.9;}
.list{width:500px;border:1px solid #DBDBDB;padding:10px;BACKGROUND:#F5F5F5;text-align: center;}
.list p span {color: red; padding: 0 8px;}
.list p:empty{background: #000000;}
.list:empty{display: none;}
.link{position:fixed;height:20px;font-size: 12px;color:#999;text-align: center;width: 100%;bottom:0;line-height:20px;margin:0;padding:0; background: #EAEAEA;padding:5px 0;}
.link a{font-size:12px;color:#999;}
</style>
</head>
<body>
<h1 class="title">javascript实现仿微信抢红包</h1>
<div class="wrap">
<div class="line">红包个数:<input type="text" name="packetNumber" value="5" onkeyup="this.value=this.value.replace(/\D/g,‘‘)" onafterpaste="this.value=this.value.replace(/\D/g,‘‘)" maxlength="10">个</div>
<div class="line">总&ensp;金&ensp;额:<input type="text" name="money" value="5" onkeyup="if(isNaN(value))execCommand(‘undo‘)" onafterpaste="if(isNaN(value))execCommand(‘undo‘)" maxlength="10">元</div>
<div class="line"><a class="btn" href="javascript:;">发红包</a></div>
</div>
<div class="list"></div>
<p class="link">参考<a target="_blank" href="https://www.zybuluo.com/yulin718/note/93148">《微信红包的架构设计简介》</a>文章</p>

<script>
"use strict";

var _createClass = function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor)
descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function(Constructor, protoProps, staticProps) {
if (protoProps)
defineProperties(Constructor.prototype, protoProps);
if (staticProps)
defineProperties(Constructor, staticProps);
return Constructor;
}
;
}();

function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}

var MoneyPacket = function() {
function MoneyPacket(packNumber, money) {
_classCallCheck(this, MoneyPacket);

this.min = 0.01;
this.flag = true;
this.packNumber = packNumber;
this.money = money;
if (!this.checkPackage()) {
this.flag = false;
return {
"flag": this.flag
};
}
}

_createClass(MoneyPacket, [{
key: "checkPackage",
value: function checkPackage() {
if (this.packNumber == 0) {
alert("至少需要设置1个红包");
return false;
}
if (this.money <= 0) {
alert("红包总金额不能小于0");
return false;
}
if (this.packNumber * this.min > this.money) {
alert("单个红包金额不可低于0.01元");
return false;
}
return true;
}
}]);

return MoneyPacket;
}();

var getRandomMoney = function getRandomMoney(packet) {
if (packet.packNumber == 0) {
return;
}
if (packet.packNumber == 1) {
var _lastMoney = Math.round(packet.money * 100) / 100;
packet.packNumber--;
packet.money = 0;
return _lastMoney;
}
var min = 0.01
,
max = packet.money / packet.packNumber * 2
,
money = Math.random() * max;
money = money < min ? min : money;
money = Math.floor(money * 100) / 100;
packet.packNumber--;
packet.money = Math.round((packet.money - money) * 100) / 100;
return money;
}
;

(function() {
var oBtn = document.querySelector(".btn");
var oList = document.querySelector(".list");

oBtn.onclick = function() {
var packetNumber = +document.querySelector("input[name=packetNumber]").value;
var money = +document.querySelector("input[name=money]").value;
var str = "";

var packet = new MoneyPacket(packetNumber,money)
,
num = packet.flag && packet.packNumber || 0;
console.log("========================================================================");
for (var i = 0; i < num; i++) {
var _pack = getRandomMoney(packet);
str += "<p>第<span>" + i + "</span>个红包:: <span>" + _pack.toFixed(2) + "</span>元&emsp;&emsp;==剩余红包:: <span>" + packet.money.toFixed(2) + "</span> 元<p>";
console.log("第", i, "个红包::", _pack.toFixed(2), "元 ==剩余红包::", packet.money.toFixed(2), "元");
}
str !== "" && (oList.innerHTML = str);
}
;
})();

</script>
</body>
</html>

时间: 2024-10-16 13:07:10

微信随机红包的相关文章

微信随机红包的计算

<?php //$bonus_total总数 $bonus_count个数 $bonus_type类型 function randBonus($bonus_total = 0,$bonus_count = 3,$bonus_type=1){ $bonus_items = array();//结果 $bonus_balance = $bonus_total;//余额 $bonus_avg = number_format($bonus_total/$bonus_count,2);//平均数 $i =

微信裂变红包

微信裂变红包是指微信用户在收到企业发送的组合红包之后, 可以再次将红包中的剩余金额分享给好友领取的一种现金红包形式. 一.功能介绍 春节期间,微信红包以其独特的魅力,优秀的用户体验和安全的支付环境,一经推出即受到了广大用户的热烈欢迎,现微信支付现金红包向微信支付商户开发,具体能力如下: 1.商户调用接口时,通过指定发送对象以及发送金额的方式发放红包,这样的方式,允许商户灵活的应用于各种各样丰富的活动场景 2.领取到红包后,用户的资金直接进入微信零钱,避免繁复的领奖流程,带给用户微信支付原生的流畅

微信QQ红包埋雷控制尾数避雷软件

 如果你没用软件 那你一定是输微信咨询 fys620418 下面小编详细介绍一下这个软件.什么,这位朋友问这款全自动QQ抢红包埋雷扫软件-APP解码,到底有什么玩法,听小编详细说,绝对让您玩得高兴痛快.微信红包控制尾数,固定数字,固定金额,红包控三公玩法,制尾数.固定数字,固定金额,适合玩单双,欢乐十分,尾数玩法?QQ红包控制尾数,各种各样的接龙玩法,牛牛玩法,大小单双玩法,快乐十分玩法,暗宝玩法,各行玩法等等.还有七星彩玩法,控制尾数玩法.当然了,全自动QQ抢红包埋雷扫软件-APP解码,它的功

微信企业红包开发(php)

微信的开发真的有点麻烦,不是难,就是烦,细节多,东西多,关联多 这里记录下 微信企业红包开发的整个过程(弄完的话  微信支付 也差不多了,代码是 php的) 申请:这里只说简单的过程 先申请公众服务号 在服务号中申请'微信支付'(登录公众号平台首页左面有这个菜单),觉得微信在推广移动支付,所以还是很好申请的,关于申请中填写的网站最好做一个购买的演示链接,这样可能更容易下来. 证书 微信支付申请下来了,那么你有了一个 微信的 商户号和登录密码 (会发邮件给你) 还是从申请微信支付哪里 点到  微信

微信发红包 PHP 实现

最近做生日营销,需要微信发红包,特此从网上找了一篇教程 首先你的有个服务号,并且开通了微信支付,我在这就不说怎么去申请和开通了,我是看了微信官方文档后,想看官方文档的朋友可以到下面这个链接 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_1 class WxRedPack { //配置参数信息 const SHANGHUHAO = "***********";//商户号 const PART

微信黄金红包真的要来了!教你怎么发/抢微信黄金红包!

春节期间,大家对于抢红包都是乐此不疲的,不管是0.01元,还是几块钱,只要抢上了,就觉得特别高兴和满足,而今年的过年互联网红包中,支付宝的五福红包算是一个爆点,不过大年三十晚上就被玩完了.而大家都在想微信今年怎么不发红包的时候,微信推出了一个大招--微信黄金红包!是的,你没看错,真金白银的红包!抢到就真的是抢到金子了!不过马浩周告诉你这个功能暂时是在内测期,不过只要是实名用户都可以去申请测试. 上面这张图就是网友爆料出来的,腾讯ceo马化腾在内测微信黄金红包里面发布的,据说马化腾也在除夕之夜参与

PHP随机红包算法

2017年1月14日 14:19:14 星期六 简便起见, 用整数, 假设每个红包里边有x个糖豆 一种: 防微信, 每个红包的最大金额是: (剩余金额/剩余红包数)*2 1 function randBean($total_bean, $total_packet) 2 { 3 $cp_total_bean = $total_bean; 4 $cp_total_packet = $total_packet; 5 6 $arr = []; 7 $min = 1; 8 while($total_pac

使用nodejs调用微信发送红包

前置条件:申请微信发送红包的账户及其权限 依赖 blueimg-md5和 xmlreader 库 /common/weixin.js 源码 /** * Created by chent696 on 2015/2/7./common/weixin.js */ /* 拼接微信红包xml串 */ /* serverConfig.json 文件内容 "clientIp":"222.73.202.251", "showName":"i8小时&qu

微信摇红包系统对商家有什么好处

随着移动互联网迅速开展,互联网思维也早已家喻户晓,移动互联网推广中的一大利器,微信公众号也成为了企业微信推广的主要平台,可是依然许多公司没有意识到微信公众号运营好主要性,许多的公司开通了微信公众号却不善运营,而达不到好的推广作用. 在这里,特地总结了微信公众号运营的十大规律助力公司玩赚微推广.跟着微信版别的新晋级,小编近来发现微信里被躲藏的新功能,小编居然在微信群里看到了微信摇红包系统的红包,是小编看错了吗擦擦双眼仔细看,手贱党想必早已点入了红包,不料是付出红包而不是收红包啊!都是些什么鬼 曾经