全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

js仿微信抢红包功能

本文实例为大家分享了js仿微信抢红包功能的具体代码,供大家参考,具体内容如下

<!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:;" rel="external nofollow" >发红包</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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 微信  # 红包  # 使用AutoJs实现微信抢红包的代码  # 基于js实现抽红包并分配代码实例  # js canvas实现红包照片效果  # js+css实现红包雨效果  # JavaScript实现微信红包算法及问题解决方法  # 利用adb shell和node.js实现抖音抢红包功能(推荐)  # Javascript网页抢红包外挂实现分享  # js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能  # 基于JavaScript实现微信抢红包功能  # js实现指定红包顺序和金额算法  # 微软  # 抢红包  # 大家分享  # 具体内容  # 大家多多  # 总金额  # 发红包  # center  # align  # text  # line  # btn  # height  # wrap  # list  # outline  # color  # focus  # width  # auto 


相关文章: 建站之星导航菜单设置与功能模块配置全攻略  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  建站之星导航配置指南:自助建站与SEO优化全解析  如何用西部建站助手快速创建专业网站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何在IIS中新建站点并配置端口与物理路径?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  高端建站三要素:定制模板、企业官网与响应式设计优化  小建面朝正北,A点实际方位是否存在偏差?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  建站之星备案是否影响网站上线时间?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  大连网站设计制作招聘信息,大连投诉网站有哪些?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  实现点击下箭头变上箭头来回切换的两种方法【推荐】  外贸公司网站制作哪家好,maersk船公司官网?  山东云建站价格为何差异显著?  如何确保西部建站助手FTP传输的安全性?  微信小程序 input输入框控件详解及实例(多种示例)  如何快速生成高效建站系统源代码?  电商平台网站制作流程,电商网站如何制作?  如何将凡科建站内容保存为本地文件?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何选择可靠的免备案建站服务器?  如何在七牛云存储上搭建网站并设置自定义域名?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何通过虚拟主机快速完成网站搭建?  建站主机CVM配置优化、SEO策略与性能提升指南  做企业网站制作流程,企业网站制作基本流程有哪些?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何用VPS主机快速搭建个人网站?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  建站主机服务器选购指南:轻量应用与VPS配置解析  如何通过FTP服务器快速搭建网站?  ,有什么在线背英语单词效率比较高的网站?  如何在IIS中新建站点并配置端口与IP地址?  Python lxml的etree和ElementTree有什么区别  定制建站价位费用解析与套餐推荐全攻略  如何快速查询域名建站关键信息?  如何快速搭建高效可靠的建站解决方案?  网站按钮制作软件,如何实现网页中按钮的自动点击?  行程制作网站有哪些,第三方机票电子行程单怎么开? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。