大转盘活动抽奖,需要demo留言

html+js

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html" charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<title>Rotate</title>
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<div class="rotate_wrap">
<img class="bg_img rotate_origin" id="i_bg" src="images/img1.png">
<img class="cont_img rotate_origin1" id="i_cont" src="images/img2.png">
</div>
<div class="btn" id="i_btn">开始</div>
<div class="btn1" id="i_back">退出</div>
<div class="overfloat" id="i_close_cont">
<div class="overfloat_cont">
<strong class="top_space">提交成功</strong>
<div><span id="i_time" class="font_red">5s</span> 后自动返回微信。</div>
<div id="i_close" class="btn">立即返回</div>
</div>
</div>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
// 转盘样式,a:旋转角度,p:概率(1代表100%),t:需要显示的其它信息(文案or分享)
var result_angle = [{a:0,p:0.1,t:‘桃花朵朵开^_^‘},{a:45,p:0.1,t:‘哎呦,不错哦^_^‘},{a:90,p:0.1,t:‘天天开心呢^_^‘},{a:135,p:0.3,t:‘给姐笑一个^_^‘},{a:180,p:0.1,t:‘今天天气不错^_^‘},{a:225,p:0.1,t:‘心情大好哈哈^_^‘},{a:270,p:0.1,t:‘中奖五百万^_^‘},{a:315,p:0.1,t:‘打架你赢了^_^‘}];
var rotate = {
rotate_angle : 0, //起始位置为0
flag_click : true, //转盘转动过程中不可再次触发
calculate_result:function(type,during_time){//type:0,箭头转动,1,背景转动;during_time:持续时间(s)
var self = this;
type = type || 0; // 默认为箭头转动
during_time = during_time || 1; // 默认为1s

var rand_num = Math.ceil(Math.random() * 100); // 用来判断的随机数,1-100

var result_index; // 最终要旋转到哪一块,对应result_angle的下标
var start_pos = end_pos = 0; // 判断的角度值起始位置和结束位置

for(var i in result_angle){
start_pos = end_pos + 1; // 区块的起始值
end_pos = end_pos + 100 * result_angle[i].p; // 区块的结束值

if(rand_num >= start_pos && rand_num <= end_pos){ // 如果随机数落在当前区块,那么获取到最终要旋转到哪一块
result_index = i;
break;
}
}

var rand_circle = Math.ceil(Math.random() * 2) + 4; // 附加多转几圈,2-3

self.flag_click = false; // 旋转结束前,不允许再次触发
if(type == 0){ // 转动盘子
self.rotate_angle = self.rotate_angle - rand_circle * 360 - result_angle[result_index].a - self.rotate_angle % 360;
$(‘#i_bg‘).css({
‘transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-ms-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-webkit-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-moz-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-o-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘transition‘: ‘transform ease-out ‘+during_time+‘s‘,
‘-moz-transition‘: ‘-moz-transform ease-out ‘+during_time+‘s‘,
‘-webkit-transition‘: ‘-webkit-transform ease-out ‘+during_time+‘s‘,
‘-o-transition‘: ‘-o-transform ease-out ‘+during_time+‘s‘
});
}else{ // 转动指针
self.rotate_angle = self.rotate_angle + rand_circle * 360 + result_angle[result_index].a - self.rotate_angle % 360;
$(‘#i_cont‘).css({
‘transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-ms-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-webkit-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-moz-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘-o-transform‘: ‘rotate(‘+self.rotate_angle+‘deg)‘,
‘transition‘: ‘transform ease-out ‘+during_time+‘s‘,
‘-moz-transition‘: ‘-moz-transform ease-out ‘+during_time+‘s‘,
‘-webkit-transition‘: ‘-webkit-transform ease-out ‘+during_time+‘s‘,
‘-o-transition‘: ‘-o-transform ease-out ‘+during_time+‘s‘
});
}
// 旋转结束后,允许再次触发
setTimeout(function(){
self.flag_click = true;
// 告诉结果
alert(result_angle[result_index].t);
},during_time*1000);
}
}
$(document).ready(function(){

$(‘#i_btn‘).click(function(){
if(rotate.flag_click){ // 旋转结束前,不允许再次触发
rotate.calculate_result(1,1);
}
});

var t=5;//5秒后返回微信
function f_t(){
setTimeout(function(){
t--;
$("#i_time").html(t+"s");
f_t();
},1000)
}

$(‘#i_back‘).click(function(){
$("#i_close_cont").show();
f_t();
});

$(‘#i_close‘).click(function(){
$("#i_close_cont").hide();
});
});
</script>
</body>
</html>

css 代码:

html,body,div,img,a{
margin:0;
padding:0;
font:normal normal 300 16px/1.5 "微软雅黑",arial,verdana;
}
.btn,.btn:hover.btn:visited{
color:#ffffff;
background-color:#fd5b78;
margin:10px auto;
display:block;
text-align: center;
width:240px;
height:40px;
line-height:40px;
border:1px solid #DE3163;
border-radius:4px;
cursor:pointer;
}
.btn:active{
background-color:#e46084;
}
.btn1,.btn1:hover.btn1:visited{
color:#ffffff;
background-color:#008573;
margin:10px auto;
display:block;
text-align: center;
width:240px;
height:40px;
line-height:40px;
border:1px solid #00755E;
border-radius:4px;
cursor:pointer;
}
.btn1:active{
background-color:#00755E;
}
.rotate_wrap{
width: 90%;
max-width: 300px;
height: 300px;
margin: 20px auto 50px;
position:relative;
}
.bg_img{
width:100%;
position:absolute;
top:0;
left:0;
}
.cont_img{
width: 31px;
position: absolute;
top: 72px;
left:135px;
}
.rotate_origin{
transform-origin: 50% 50%;
-ms-transform-origin:50% 50%;
-webkit-transform-origin:50% 50%;
-moz-transform-origin:50% 50%;
-o-transform-origin:50% 50%;
}
.rotate_origin1{
transform-origin: 50% 85%;
-ms-transform-origin:50% 85%;
-webkit-transform-origin:50% 85%;
-moz-transform-origin:50% 85%;
-o-transform-origin:50% 85%;
}
.overfloat{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background-color:rgba(1,1,1,0.5);
z-index:9;
display:none;
}
.overfloat_cont{
position:fixed;
top:50%;
left:50%;
width:318px;
height:160px;
margin-left:-159px;
margin-top:-80px;
border-radius: 4px;
text-align:center;
font-size:20px;
color:#000000;
line-height:30px;
background-color:#ffffff;
}
.top_space{
display:block;
margin-top:20px;
}
.font_red{
color:#fd5b78;
}
.ajax_hide{
height:0;
width:0;
position:absolute;
top:0;
left:0;
overflow:hidden;
}
.banner_wrap{
position:fixed;
font-size:0;
bottom:0;
left:0;
width:100%;
}
.banner_wrap img{
width:100%;
}

时间: 2024-10-18 16:05:53

大转盘活动抽奖,需要demo留言的相关文章

中奖概率算法(php 可用于刮刮卡,大转盘等抽奖算法)

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法.用法很简单,代码里有详细注释说明,一看就懂 <?php /* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的. * 这样 筛选到最终,总

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法.用法很简单,代码里有详细注释说明,一看就懂 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 <!--?

ECMALL FLASH幸运大转盘升级

大转盘新升级描述: 1.新修复一些bug 2.底层代码更优化 3.更方便API接口调用 ECMALL  FLASH幸运大转盘积分抽奖描述: 1:可以设置每个奖品的中奖概率,后台自由设置: 2:可以设置每个奖品的数量,当该奖品全部被抽出时不会再抽中此奖品,这样更好地预先制定奖品总额. 3:中奖公告内容设置,每个奖品的中奖后在中奖公告内显示出来: 4:抽奖程序与商城同步登录与退出,采用的为一个会员系统,更加无缝的结合在一起: 5:记录每个抽奖记录,无论管理员在后台还是会员在自己的管理中心均可以查看中

纯CSS3大转盘抽奖(响应式、可配置)

源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CSS3 实现.虽然比不上 Canvas 绘图的绚丽,但也总算完成了一个抽奖的 Demo,详见:https://github.com/givebest/wechat-turntalbe-canvas. 事后想起,CSS3 实现也并不是无有益处,比如简单.快捷.调试方便.渲染想来也是要比 Canvas 要高效的,更重要的一点是支持媒体查询,大转

jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现

在线实例 查看演示 完整代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv

jquery——九宫格大转盘抽奖

一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery九宫格大转盘抽奖</title> <style> #lottery{width:570px;height:510p

大转盘抽奖

这周做了2个大转盘抽奖,一个使用了jQueryRotate.2.2.js插件,兼容到IE6,另外一个利用css3自己尝试写的 1.插件jQueryRotate.2.2.js(兼容基本浏览器,兼容到IE6) 效果查看: 此插件必须事先引入jquery插件,PC端推荐 JS插件代码: // VERSION: 2.2 LAST UPDATE: 13.03.2012 /* * Licensed under the MIT license: http://www.opensource.org/licens

大转盘抽奖css3+js(简单书写)

今天花了一段时间简单写了下抽奖大转盘,这里写的只是自己想到的简单的写了下(也希望收获其他想法),后续,再写的话会更新. 大体思路:页面加载完成后,通过监听开始按钮的点击事件.然后会根据产生的随机数,通过控制旋转针对象的transform属性,然后进行旋转,最后在结束后获取存储来数组中对应的抽奖内容最后弹出. 知识点:transform, translation,js数组,Math等等 先看下效果,没有素材,只是用css简单的布了下局.不要喷我比较简陋,嘿嘿. 接下来是基本代码结构: 1 <div

原型导航应用于大转盘抽奖客户端显示页面实例

<html><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <title>大转盘客户端</title> <meta name="keyw