lottery.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <!DOCTYPE html>
  2. <html lang="en" style="width: 100%">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>抽奖</title>
  8. <script src="js/jquery.min.js"></script>
  9. <script src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
  10. <script src="https://tjs.sjs.sinajs.cn/open/thirdpart/js/jsapi/mobile.js" charset="utf-8"></script>
  11. <script src="js/wechat.js"></script>
  12. <link rel="stylesheet" href="css/lottery2.css?v=2" type="text/css" />
  13. <script type="text/javascript">
  14. //从localstorage中取得ID
  15. var limit = 0;
  16. var id = localStorage.userId;
  17. var current = 0;
  18. var last = 0;
  19. var threshold = 0;
  20. var speed = 1;
  21. var enable = true;
  22. var src = null;
  23. var recordId = null;
  24. $(function () {
  25. //先在这里查看是否有id
  26. var shareTitle = "一秒变大厨,为远方的朋友做道菜吧!";
  27. var shareImg = "https://wx.ttkuaiban.com/minigame/images/share_picture.png";
  28. var shareLink = "https://wx.ttkuaiban.com/minigame/lottery.html";
  29. var ua = navigator.userAgent.toLowerCase();
  30. var currentUrl = window.location.href;
  31. if (ua.match(/microMessenger/i) == 'micromessenger') {
  32. $.post("./user/getWxConfigParam?url=" + currentUrl, {}, function(resp) {
  33. if (resp.code == 'error') {
  34. console.log(resp.code);
  35. }else{
  36. wx.config({
  37. debug: false,
  38. appId: 'wx749c84daac654e1e',
  39. timestamp: resp.data.timestamp,
  40. nonceStr: resp.data.noncestr,
  41. signature: resp.data.sign,
  42. jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'showOptionMenu', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem']
  43. });
  44. wx.ready(function(){
  45. const share = {
  46. title: shareTitle,
  47. desc: "",
  48. imgUrl: shareImg,
  49. link: shareLink,
  50. success: function(res) {
  51. $.post("./prize/luckDrawAddShare", {uid: id}, function(resp) {
  52. if (resp.code == 'error') {
  53. console.log(resp.code);
  54. }else{
  55. //分享之后前端限制可抽奖次数+1
  56. alert("分享成功,每日第一次分享成功可额外获得一次抽奖机会");
  57. limit--;
  58. }
  59. });
  60. },
  61. cancel: function() {}
  62. };
  63. wx.onMenuShareAppMessage(share);
  64. wx.onMenuShareTimeline(share);
  65. wx.onMenuShareQQ(share);
  66. wx.onMenuShareQZone(share);
  67. wx.onMenuShareWeibo(share);
  68. });
  69. wx.error(function(res){
  70. console.log(res);
  71. });
  72. };
  73. });
  74. } else if (ua.match(/weibo/i) == 'weibo') {
  75. //weibo
  76. var url = escape(location.href);
  77. $.post("./user/getWeiboConfigParam?url=" + url, {}, function(resp) {
  78. if (resp.code == 'error') {
  79. console.log(resp.code);
  80. }else{
  81. window.WeiboJS.init({
  82. 'appkey' : resp.data.appkey,
  83. 'debug': false,
  84. 'timestamp': parseInt(resp.data.timestamp),
  85. 'noncestr': resp.data.noncestr,
  86. 'signature': resp.data.sign,
  87. 'scope': [
  88. "getNetworkType", "networkTypeChanged", "getBrowserInfo", "checkAvailability", "setBrowserTitle", "openMenu", "setMenuItems", "menuItemSelected", "setSharingContent", "openImage", "scanQRCode", "pickImage", "openVideoCamera", "uploadVideo", "getWM", "getLocation", "pickContact", "apiFromTheFuture", "menuItemAvailable", "invokeMenuItem", "audioMetersChange"
  89. ]
  90. }, function(ret){
  91. WeiboJS.invoke("setSharingContent", {
  92. title: shareTitle,
  93. desc: "",
  94. icon: shareImg
  95. }, function(e) {
  96. //alert("1-设置分享内容成功:" + JSON.stringify(e));
  97. });
  98. WeiboJS.invoke("setMenuItems", {
  99. menus: ["shareToWeibo", "shareToMessage", "shareToWeixin", "shareToPYQ", "shareToQQ", "shareToQzone"],
  100. content: shareTitle,
  101. title: "",
  102. icon: shareImg
  103. }, function(e) {
  104. // alert("setMenuItems 返回数据:" + JSON.stringify(e))
  105. });
  106. WeiboJS.on("menuItemSelected", function(e) {
  107. $.post("./prize/luckDrawAddShare", {uid: id}, function(resp) {
  108. if (resp.code == 'error') {
  109. console.log(resp.code);
  110. }else{
  111. //分享之后前端限制可抽奖次数+1
  112. alert("分享成功,每日第一次分享成功可额外获得一次抽奖机会");
  113. limit--;
  114. }
  115. });
  116. if (!e.hasOwnProperty("error")) {
  117. if (e.selected_code == 1001) {
  118. WeiboJS.invoke("invokeMenuItem", {code:1001}, function(params){});
  119. }
  120. }
  121. // alert("菜单选择结果:" + JSON.stringify(e))
  122. });
  123. // WeiboJS.invoke("menuItemAvailable", {}, function(params){
  124. // // alert("获取的菜单项:" + JSON.stringify(params));
  125. // });
  126. });
  127. }
  128. });
  129. } else {}
  130. //进入和窗口缩放时重新设置内容位置
  131. setPosition();
  132. $(window).resize(function () {
  133. setPosition();
  134. });
  135. //获取
  136. $.post("./prize/luckDrawList", {}, function(resp) {
  137. if (resp.code == 'error') {
  138. console.log(resp.code);
  139. }else{
  140. for(let index in resp.data){
  141. $(".advertisement").append("<li>恭喜" + resp.data[index].nickName + "获得了" + resp.data[index].prize + "</li>")
  142. }
  143. }
  144. });
  145. //点击查看结果
  146. $(".check_result").click(function(){
  147. window.location.href = "result.html";
  148. })
  149. //点击抽奖
  150. $(".button").click(function () {
  151. if(enable == true){
  152. if(limit >= 1){
  153. alert("请再进行一次游戏获取抽奖机会");
  154. window.location.href = "index.html";
  155. }else{
  156. limit++;
  157. //获取抽奖结果
  158. $.post("./prize/luckDraw", {userId: id}, function(resp) {
  159. if (resp.code == 'error') {
  160. alert(resp.msg);
  161. }else{
  162. //进入不可点击状态
  163. enable = false;
  164. //设置初始速度
  165. speed = 60;
  166. recordId = resp.data.prizeRecord.id;
  167. //设置要中奖的位置 1.5没有 0十二瓶 4一升 2.6五百毫升 3书 7肥皂
  168. if(resp.data.prizeLevel == -1){
  169. var rand = Math.round(Math.random()*2);
  170. console.log(rand);
  171. if(rand <= 1){
  172. threshold = 1;
  173. }else{
  174. threshold = 5;
  175. }
  176. }else if(resp.data.prizeLevel == 0){
  177. threshold = 0;
  178. src = "images/reward_oil60_2.png";
  179. }else if(resp.data.prizeLevel == 1){
  180. threshold = 2;
  181. src = "images/reward_oil5_2.png";
  182. }else if(resp.data.prizeLevel == 2){
  183. threshold = 4;
  184. src = "images/reward_oil10_2.png";
  185. }else if(resp.data.prizeLevel == 3){
  186. threshold = 7;
  187. src = "images/reward_soap2.png";
  188. }else if(resp.data.prizeLevel == 4){
  189. threshold = 3;
  190. src = "images/reward_book2.png";
  191. }else{
  192. threshold = 1;
  193. }
  194. //配置移动次数
  195. last = 56 + threshold - current;
  196. setTimeout(function(){next(current)}, 1000);
  197. }
  198. });
  199. }
  200. }
  201. });
  202. //谢谢惠顾后点击的按钮
  203. $(".result_failed_button").click(function () {
  204. window.location.href = "index.html";
  205. //这里需要检查一下还有没有剩余次数,如果没有的话直接关闭mask,alert可以分享增加次数
  206. });
  207. //领取奖品按钮
  208. $(".result_success_button").click(function () {
  209. var name = $(".result_success_name").val();
  210. var phone = $(".result_success_phone").val();
  211. if(name == "" || phone == ""){
  212. alert("请填写完整信息");
  213. }else{
  214. $.post("./prize/luckDrawAddInfo", {
  215. id: recordId,
  216. phone: phone,
  217. userName: name
  218. }, function(resp) {
  219. if (resp.code == 'error') {
  220. console.log(resp.code);
  221. }else{
  222. alert("填写成功");
  223. $(".mask").hide();
  224. $(".success").hide();
  225. $(".result_success_title").hide();
  226. $(".result_success_logo").hide();
  227. $(".result_success_name").hide();
  228. $(".result_success_phone").hide();
  229. $(".result_success_button").hide();
  230. }
  231. });
  232. }
  233. });
  234. });
  235. //重新设置内容位置
  236. function setPosition() {
  237. $(".pool").css("top", $(document).width() / 1.9);
  238. $(".container").css("top", $(document).width() / 1.75).css("height", $(document).width() / 1.6);
  239. $(".item").css("height", $(".container").width() / 3.9);
  240. $(".title").css("top", $(".container").width() * 2.3);
  241. $(".check_result").css("top", $(".container").width() * 2.32);
  242. $(".tips").css("top", $(".container").width() * 2.42);
  243. $(".mask").css("height", $(document).height());
  244. $(".result_failed_button").css("top", $(".container").width() * 1.6);
  245. $(".result_success_title").css("top", $(".container").width() * 0.69);
  246. $(".result_success_logo").css("top", $(".container").width() * 0.9);
  247. $(".result_success_name").css("top", $(".container").width() * 1.35);
  248. $(".result_success_phone").css("top", $(".container").width() * 1.59);
  249. $(".result_success_button").css("top", $(".container").width() * 1.82);
  250. $(".case").css("top", $(".container").width() * 1.9);
  251. }
  252. //激活移动
  253. function next() {
  254. $(".item" + current).removeClass("active");
  255. $(".item" + (current + 1) % 8).addClass("active");
  256. current = (current + 1) % 8;
  257. //10以下开始减速
  258. if(last < 10){
  259. speed += 60;
  260. }
  261. //剩余次数8以下并且到了号时
  262. if(!(last-- < 8 && current == threshold)){
  263. setTimeout(function(){next()}, speed);
  264. }else{
  265. setTimeout(function(){
  266. if(threshold == 1 || threshold == 5){
  267. failed();
  268. }else{
  269. success();
  270. }
  271. enable = true;
  272. }, 1500);
  273. }
  274. }
  275. //中奖之后
  276. function success(){
  277. $(".mask").show();
  278. $(".success").show();
  279. $(".result_success_title").show();
  280. $(".result_success_logo").show();
  281. $(".result_success_name").show();
  282. $(".result_success_phone").show();
  283. $(".result_success_button").show();
  284. $(".result_success_logo").attr("src", src);
  285. }
  286. //谢谢惠顾
  287. function failed(){
  288. $(".mask").show();
  289. $(".failed").show();
  290. $(".result_failed_button").show();
  291. }
  292. </script>
  293. </head>
  294. <body style="width: 100%">
  295. <img class="background" src="images/lottery_background_red.png">
  296. <img class="pool" src="images/lottery_pool.png">
  297. <div class="container">
  298. <img class="item item0" src="images/reward_oil60.png">
  299. <img class="item item1" src="images/reward_null.png">
  300. <img class="item item2" src="images/reward_oil5.png">
  301. <img class="item item7" src="images/reward_soap.png">
  302. <img class="item button" src="images/lottery_button.png">
  303. <img class="item item3" src="images/reward_book.png">
  304. <img class="item item6" src="images/reward_oil5.png">
  305. <img class="item item5" src="images/reward_null.png">
  306. <img class="item item4" src="images/reward_oil10.png">
  307. </div>
  308. <span class="title"><span style="color: #FF356B">活动</span>说明</span>
  309. <span class="tips">1.中奖者留下姓名和电话,在活动结束后会联系邮寄奖品;<br>
  310. 2.微博参与抽奖方式:<br>
  311. 关注@贝蒂斯橄榄油官方微博,转发或评论置顶微博并上传“游戏结果海报”。<br>
  312. 3.每人每天通过游戏获得两次抽奖机会,转发本页面额外获得一次抽奖机会。
  313. </span>
  314. <div class="case">
  315. <div class="part2" id="part2">
  316. <div id="scroll1">
  317. <ul class="advertisement">
  318. </ul>
  319. </div>
  320. <div id="scroll2"></div>
  321. </div>
  322. </div>
  323. <script type="text/javascript">
  324. var PartArea = document.getElementById('part2');
  325. var Scroll1 = document.getElementById('scroll1');
  326. var Scroll2 = document.getElementById('scroll2');
  327. Scroll2.innerHTML = Scroll1.innerHTML;
  328. function roll() {
  329. if(Scroll2.offsetHeight - PartArea.scrollTop <= 0) {
  330. PartArea.scrollTop -= Scroll1.offsetHeight;
  331. } else {
  332. PartArea.scrollTop++;
  333. }
  334. }
  335. var StopRoll = setInterval(roll, 60);
  336. PartArea.onmouseover = function () {
  337. clearInterval(StopRoll);
  338. }
  339. PartArea.onmouseout = function () {
  340. StopRoll = setInterval(roll, 60);
  341. }
  342. </script>
  343. <div class="mask" style="display: none;"></div>
  344. <img class="result success" src="images/result_success.png" style="display: none;">
  345. <p class="result_success_title" style="display: none;">输入个人信息进行领奖</p>
  346. <img class="result_success_logo" style="display: none;">
  347. <input class="result_success_name" type="text" placeholder="姓名" style="display: none;">
  348. <input class="result_success_phone" type="text" placeholder="手机号" style="display: none;">
  349. <img class="result_success_button" src="images/result_success_button.png" style="display: none;">
  350. <img class="result failed" src="images/result_failed.png" style="display: none;">
  351. <img class="result_failed_button" src="images/result_failed_button.png" style="display: none;">
  352. <span class="check_result">我的中奖结果</span>
  353. </body>
  354. </html>