求哥JS高手帮我扣一个模块 我在我网上下载了一个幸运转盘的html 想把里面的转盘功能单独扣出来 但是不JS不太懂 求个高手可以加我QQ:106347857jshtmlqq 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <div class="window" id="windowcenter" style="display: none;"> <div id="title" class="title">消息提醒<span class="close" id="alertclose"></span></div> <div class="content"> <div id="txt">亲,继续努力哦!</div> <input type="button" value="确定" id="windowclosebutton" name="确定" class="txtbtn"> </div></div> <div id="outercont"><div id="outer-cont"><div id="outer" style="-webkit-transform: rotate(1956deg);"><img src="activity-lottery-3.png"></div></div><div id="inner-cont"><div id="inner"><img src="activity-lottery-2.png"></div></div></div><div class="content"><div class="boxcontent boxyellow" id="result" style="display:none"><div class="box"><div class="title-orange"><span>恭喜你中奖了</span></div><div class="Detail"> <p>你中了:<span class="red" id="prizetype"> </span></p> <p>兑奖SN码:<span class="red" id="sncode"></span></p> <p class="red" id="red">本次兑奖码已经关联你的微信号,你可向公众号发送【大转盘】进行查询! </p> <p> <input name="" class="px" id="tel" value="" type="text" placeholder="用户请输入您的手机号"> </p> <p> </p><p><input class="pxbtn" name="提 交" id="save-btn" type="button" value="用户提交"></p> <p> <input name="" class="px" id="parssword" type="password" value="" placeholder="商家输入兑奖密码"></p> <p><input class="pxbtn" name="提 交" id="save-btnn" type="button" value="商家提交"></p> </div></div></div><div class="boxcontent boxyellow"><div class="box"><div class="title-green"><span>奖项设置:</span></div> <div class="Detail"> <p>一等奖: iphone6。奖品数量:10 </p> <p>二等奖: ipad6 。奖品数量:20 </p><p>三等奖: ipad mini 3 。奖品数量:100 </p> </div></div></div><div class="boxcontent boxyellow"><div class="box"><div class="title-green">活动说明:</div><div class="Detail"> <p class="red">本次活动总共可以转3次转盘!你已经转了1次 </p> <p> 亲,请点击进入大转盘抽奖活动页面,祝您好运哦! </p></div></div></div></div></div><script type="text/javascript">$(function() { window.requestAnimFrame = (function() { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } })(); var totalDeg = 360 * 3 + 0; var steps = []; var lostDeg = [36, 96, 156, 216, 276,336]; var prizeDeg = [6, 66, 126,186,246,306]; var prize, sncode; var count = 0; var now = 0; var a = 0.01; var outter, inner, timer, running = false; function countSteps() { var t = Math.sqrt(2 * totalDeg / a); var v = a * t; for (var i = 0; i < t; i++) { steps.push((2 * v * i - a * i * i) / 2) } steps.push(totalDeg) } function step() { outter.style.webkitTransform = 'rotate(' + steps[now++] + 'deg)'; outter.style.MozTransform = 'rotate(' + steps[now++] + 'deg)'; if (now < steps.length) {running = true; requestAnimFrame(step) } else { running = false; setTimeout(function() { if (prize != null) { $("#sncode").text(sncode); var type = ""; if (prize == 1) { type = "一等奖" } else if (prize == 2) { type = "二等奖" } else if (prize == 3) { type = "三等奖" } $("#prizetype").text(type); $("#result").slideToggle(500); $("#outercont").slideUp(500) } else { alert("亲,继续努力哦!") } }, 200) } } function start(deg) { deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())]; running = true; clearInterval(timer); totalDeg = 360 * 5 + deg; steps = []; now = 0; countSteps(); requestAnimFrame(step) } window.start = start; outter = document.getElementById('outer'); inner = document.getElementById('inner'); i = 10; $("#inner").click(function() { if (running) return; if (count >= 3) { alert("您已经抽了 3 次奖,不能再抽了,下次再来吧!"); return } if (prize != null) { alert("亲,你不能再参加本次活动了喔!下次再来吧~"); return } $.ajax({ url: "index.php", dataType: "json", data: { token: "o7MB9jlClHsbd5OdXsQS6K8lmADA", ac: "activityuser", tid: "387", t: Math.random() }, beforeSend: function() { running = true; timer = setInterval(function() { i += 5; outter.style.webkitTransform = 'rotate(' + i + 'deg)'; outter.style.MozTransform = 'rotate(' + i + 'deg)' }, 1) }, success: function(data) { if (data.error == "invalid") { alert(data.msg); count = 3; clearInterval(timer); return } if (data.error == "getsn") { $("#tel").val(data.tel);if(data.state==2){$("#closedj").css("display","none");}$("#red").text(data.msg); alert(data.msg + data.sn); count = 3; clearInterval(timer); prize = data.prizetype; sncode = data.sn; start(prizeDeg[data.prizetype - 1]); return } if (data.success) { prize = data.prizetype; sncode = data.sn; start(prizeDeg[data.prizetype - 1]) } else { prize = null; start() } running = false; count++ }, error: function() { prize = null; start(); running = false; count++ }, timeout: 1000 }) })});</script>我在后台计算了概率 想知道把参数传到哪里控制转盘的停留位置 给id为inner的控件添加了click事件了。。 $("#inner").click(function () {,然后ajax请求动态页获取角度,调用start方法如果是其他控件触发ajax,那么在ajax的success回调中调用start方法就行了,参数为deg,应该是角度,具体是什么值就不清楚了,应该0~360度之间的值 function start(deg) { deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())]; running = true; clearInterval(timer); totalDeg = 360 * 5 + deg; steps = []; now = 0; countSteps(); requestAnimFrame(step) } window.start = start;start(30) start函数是关键: function start(deg) { deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())]; running = true; clearInterval(timer); totalDeg = 360 * 5 + deg;//转盘总共转动的度数 ...... }大概看了下,源码中是没有给start传参的,所以函数里的deg都是随机生成的,所以最后转盘转动的度数也会随机。如果给start传参,转盘的转动的度数就会确定(即你穿的角度+360*5),那么位置也就确定了。 调用start函数啊,参数就是你得到的角度 jquery 选择器问题 刚学用javascript, 问个很蠢的问题,再现等! <div contentEditable="true"/>,如何给里面插入一个元素? jquery插件的个小问题 js 缺少函数 这个JS文件怎么样解密呢?解密时请大家小心,该JS文件为木马代码!!! 如何使瀏覽器的關閉按鈕失效 论坛左边导航条是如何实现的? 如何利用javascript获取"下拉框(select)"的选项数目 改变iframe的scrolling属性,浏览器为何不能作出相应反应??!! form表单中的name和input中的name有何区别 超链接点击js控制
<div id="title" class="title">消息提醒<span class="close" id="alertclose"></span></div>
<div class="content">
<div id="txt">亲,继续努力哦!</div>
<input type="button" value="确定" id="windowclosebutton" name="确定" class="txtbtn">
</div>
</div>
<div id="outercont">
<div id="outer-cont">
<div id="outer" style="-webkit-transform: rotate(1956deg);"><img src="activity-lottery-3.png"></div>
</div>
<div id="inner-cont">
<div id="inner"><img src="activity-lottery-2.png"></div>
</div>
</div>
<div class="content">
<div class="boxcontent boxyellow" id="result" style="display:none">
<div class="box">
<div class="title-orange"><span>恭喜你中奖了</span></div>
<div class="Detail">
<p>你中了:<span class="red" id="prizetype"> </span></p>
<p>兑奖SN码:<span class="red" id="sncode"></span></p>
<p class="red" id="red">本次兑奖码已经关联你的微信号,你可向公众号发送【大转盘】进行查询! </p>
<p> <input name="" class="px" id="tel" value="" type="text" placeholder="用户请输入您的手机号"> </p>
<p>
</p><p>
<input class="pxbtn" name="提 交" id="save-btn" type="button" value="用户提交">
</p>
<p>
<input name="" class="px" id="parssword" type="password" value="" placeholder="商家输入兑奖密码">
</p>
<p>
<input class="pxbtn" name="提 交" id="save-btnn" type="button" value="商家提交">
</p>
</div>
</div>
</div>
<div class="boxcontent boxyellow">
<div class="box">
<div class="title-green"><span>奖项设置:</span></div>
<div class="Detail">
<p>一等奖: iphone6。奖品数量:10 </p>
<p>二等奖: ipad6 。奖品数量:20 </p><p>三等奖: ipad mini 3 。奖品数量:100 </p> </div>
</div>
</div>
<div class="boxcontent boxyellow">
<div class="box">
<div class="title-green">活动说明:</div>
<div class="Detail">
<p class="red">本次活动总共可以转3次转盘!你已经转了1次 </p>
<p> 亲,请点击进入大转盘抽奖活动页面,祝您好运哦! </p>
</div>
</div>
</div>
</div></div>
<script type="text/javascript">
$(function() {
window.requestAnimFrame = (function() {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000 / 60)
}
})();
var totalDeg = 360 * 3 + 0;
var steps = [];
var lostDeg = [36, 96, 156, 216, 276,336];
var prizeDeg = [6, 66, 126,186,246,306];
var prize, sncode;
var count = 0;
var now = 0;
var a = 0.01;
var outter, inner, timer, running = false;
function countSteps() {
var t = Math.sqrt(2 * totalDeg / a);
var v = a * t;
for (var i = 0; i < t; i++) {
steps.push((2 * v * i - a * i * i) / 2)
}
steps.push(totalDeg)
}
function step() {
outter.style.webkitTransform = 'rotate(' + steps[now++] + 'deg)';
outter.style.MozTransform = 'rotate(' + steps[now++] + 'deg)';
if (now < steps.length) {
running = true;
requestAnimFrame(step)
} else {
running = false;
setTimeout(function() {
if (prize != null) {
$("#sncode").text(sncode);
var type = "";
if (prize == 1) {
type = "一等奖"
} else if (prize == 2) {
type = "二等奖"
} else if (prize == 3) {
type = "三等奖"
} $("#prizetype").text(type);
$("#result").slideToggle(500);
$("#outercont").slideUp(500)
} else {
alert("亲,继续努力哦!")
}
},
200)
}
}
function start(deg) {
deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())];
running = true;
clearInterval(timer);
totalDeg = 360 * 5 + deg;
steps = [];
now = 0;
countSteps();
requestAnimFrame(step)
}
window.start = start;
outter = document.getElementById('outer');
inner = document.getElementById('inner');
i = 10;
$("#inner").click(function() {
if (running) return;
if (count >= 3) {
alert("您已经抽了 3 次奖,不能再抽了,下次再来吧!");
return
}
if (prize != null) {
alert("亲,你不能再参加本次活动了喔!下次再来吧~");
return
}
$.ajax({
url: "index.php",
dataType: "json",
data: {
token: "o7MB9jlClHsbd5OdXsQS6K8lmADA",
ac: "activityuser",
tid: "387",
t: Math.random()
},
beforeSend: function() {
running = true;
timer = setInterval(function() {
i += 5;
outter.style.webkitTransform = 'rotate(' + i + 'deg)';
outter.style.MozTransform = 'rotate(' + i + 'deg)'
},
1)
},
success: function(data) {
if (data.error == "invalid") {
alert(data.msg);
count = 3;
clearInterval(timer);
return
}
if (data.error == "getsn") { $("#tel").val(data.tel);
if(data.state==2){
$("#closedj").css("display","none");}
$("#red").text(data.msg);
alert(data.msg + data.sn);
count = 3;
clearInterval(timer);
prize = data.prizetype;
sncode = data.sn;
start(prizeDeg[data.prizetype - 1]);
return
}
if (data.success) {
prize = data.prizetype;
sncode = data.sn;
start(prizeDeg[data.prizetype - 1])
} else {
prize = null;
start()
}
running = false;
count++
},
error: function() {
prize = null;
start();
running = false;
count++
},
timeout: 1000
})
})
});</script>
我在后台计算了概率 想知道把参数传到哪里控制转盘的停留位置
function start(deg) {
deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())];
running = true;
clearInterval(timer);
totalDeg = 360 * 5 + deg;
steps = [];
now = 0;
countSteps();
requestAnimFrame(step)
}
window.start = start;start(30)
deg = deg || lostDeg[parseInt(lostDeg.length * Math.random())];
running = true;
clearInterval(timer);
totalDeg = 360 * 5 + deg;//转盘总共转动的度数
......
}大概看了下,源码中是没有给start传参的,所以函数里的deg都是随机生成的,所以最后转盘转动的度数也会随机。如果给start传参,转盘的转动的度数就会确定(即你穿的角度+360*5),那么位置也就确定了。