九宫格转盘抽奖

您所在的位置:网站首页 抽奖转盘css怎么制作 九宫格转盘抽奖

九宫格转盘抽奖

2024-05-09 03:02| 来源: 网络整理| 查看: 265

九宫格转盘抽奖 分类:代码 日期:2017-08-23 点击(21,000)

九宫格转盘抽奖

演 示

简介

抽奖效果有很多种,常见的有转盘、九宫格、随机码等等,本站之前做过几个转盘抽奖的例子(百度、机锋、QQ音乐),今天来做一个九宫格的效果。

制作方法

1、首先制作九宫格转盘,HTML、CSS 和 JavaScript 分别如下:

HTML:

虚拟主机 1元/年 VPS 1元/30天 .top域名 1元/年 免费主机1年 立即抽奖 .com域名 19元/年 .com域名 19元/年 CDN加速 10元/15天 20元快云币

这里使用的是表格布局,你也可以使用 ul/li 布局,只要用 CSS 制作成九宫格即可。

CSS:

* { margin: 0; padding: 0; } table { border-spacing: 0; border-collapse: collapse; text-align: center; } .draw { width: 460px; height: 470px; margin: 0 auto; padding: 40px; background-image: url(images/bg.png);} .draw .item { width: 150px; height: 150px; background-image: url(images/bg1.png); } .draw .item.active { background-image: url(images/bg2.png); } .draw .img { display: table-cell; width: 150px; height: 61px; vertical-align: middle; text-align: center; } .draw .img img { vertical-align: top; } .draw .gap { width: 5px; } .draw .gap-2 { height: 5px; } .draw .name { display: block; margin-top: 10px; font-size: 14px; } .draw .draw-btn { display: block; height: 150px; line-height: 150px; border-radius: 20px; font-size: 25px; font-weight: 700; color: #f0ff00; background-color: #fe4135; text-decoration: none; } .draw .draw-btn:hover { background-color: #fe8d85; }

CSS 代码并没有什么特别的地方,就是把 HTML 布局写成九宫格的样式。

JavaScript:

var lottery = { index: -1, //当前转动到哪个位置,起点位置 count: 0, //总共有多少个位置 timer: 0, //setTimeout的ID,用clearTimeout清除 speed: 20, //初始转动速度 times: 0, //转动次数 cycle: 50, //转动基本次数:即至少需要转动多少次再进入抽奖环节 prize: -1, //中奖位置 init: function(id) { if ($('#' + id).find('.lottery-unit').length > 0) { $lottery = $('#' + id); $units = $lottery.find('.lottery-unit'); this.obj = $lottery; this.count = $units.length; $lottery.find('.lottery-unit.lottery-unit-' + this.index).addClass('active'); }; }, roll: function() { var index = this.index; var count = this.count; var lottery = this.obj; $(lottery).find('.lottery-unit.lottery-unit-' + index).removeClass('active'); index += 1; if (index > count - 1) { index = 0; }; $(lottery).find('.lottery-unit.lottery-unit-' + index).addClass('active'); this.index = index; return false; }, stop: function(index) { this.prize = index; return false; } }; function roll() { lottery.times += 1; lottery.roll(); //转动过程调用的是lottery的roll方法,这里是第一次调用初始化 if (lottery.times > lottery.cycle + 10 && lottery.prize == lottery.index) { clearTimeout(lottery.timer); lottery.prize = -1; lottery.times = 0; click = false; } else { if (lottery.times < lottery.cycle) { lottery.speed -= 10; } else if (lottery.times == lottery.cycle) { var index = Math.random() * (lottery.count) | 0; //静态演示,随机产生一个奖品序号,实际需请求接口产生 lottery.prize = index; } else { if (lottery.times > lottery.cycle + 10 && ((lottery.prize == 0 && lottery.index == 7) || lottery.prize == lottery.index + 1)) { lottery.speed += 110; } else { lottery.speed += 20; } } if (lottery.speed < 40) { lottery.speed = 40; }; lottery.timer = setTimeout(roll, lottery.speed); //循环调用 } return false; } var click = false; window.onload = function(){ lottery.init('lottery'); $('.draw-btn').click(function() { if (click) { //click控制一次抽奖过程中不能重复点击抽奖按钮,后面的点击不响应 return false; } else { lottery.speed = 100; roll(); //转圈过程不响应click事件,会将click置为false click = true; //一次抽奖完成后,设置click为true,可继续抽奖 return false; } }); };

JavaScript 代码是抽奖的核心,此代码来自 starof,主要代码已有注释,你也可以到代码出处查看更详细的说明。

标签:抽奖


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3