js转盘抽奖js的一些问题。求大神解答

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
目前代码可以实现随机产生数字,我想加一个数组用来保存抽中的号码
下次产生随机数的时候检查数组中是否存在
不存在才能显示在页面,js代码如下:
var g_Interval = 1;
var g_PersonCount = 150;//参加抽奖人数
var running =
var ary= [];//声明空数组用来保存抽中的号码
function beginRndNum(trigger){
if(running){
clearTimeout(g_Timer);
$(trigger).val("开始");
$('#ResultNum').css('color','red');
updateRndNum()
console.log(ary);
$('#ResultNum').css('color','black');
$(trigger).val("停止");
beginTimer();
function updateRndNum(){
var num = Math.floor(Math.random()*g_PersonCount+1);//随机生成一个数
ary.push(num);
$('#ResultNum').html(num);
function beginTimer(){
g_Timer = setTimeout(beat, g_Interval);
function beat() {
g_Timer = setTimeout(beat, g_Interval);
updateRndNum();
这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你每次生成数字后,检测数字是否包含在ary里,若包含,就再次随机生成,不包含,就把数字push进ary里。最简单的检测就是循环数组比较。
function beginRndNum(trigger){
if(running){
clearTimeout(g_Timer);
$(trigger).val("开始");
$('#ResultNum').css('color','red');
updateRndNum()
// 你这里就改成luckNumber()
console.log(ary);
$('#ResultNum').css('color','black');
$(trigger).val("停止");
beginTimer();
function luckNumber(){
while(1) {
var num = Math.floor(Math.random()*g_PersonCount+1);//随机生成一个数
if (ary.indexOf(num) == -1) {
ary.push(num);
$('#ResultNum').html(num);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这个其实很简单
假设你们有20个人,先生成一个数组[],数组里面可能存放的是员工号1,然后生成随机范围在 1-20 内的随机数,这个数作为数组的下标,取出这个下标对应的数作为中奖号码,数组内删除这个下标,数组长度变成192,然后生成随机范围在 1-19 内的随机数,这个数作为数组的下标,取出这个下标对应的数作为中奖号码,数组内删除这个下标,数组长度变成18....
当然这个算法是有名字的 Fisher-Yates shuffle 算法
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。js摇奖用js做一个摇奖程序要求在0-10中抽出三个幸运号码且三个号码各不相同代码_百度知道
js摇奖用js做一个摇奖程序要求在0-10中抽出三个幸运号码且三个号码各不相同代码
我有更好的答案
var&map={};document.write(&今日开奖号:&br&/&&);for(var&i=0;i&3;i++){var&r=Math.floor(Math.random()*10);if(null==map[r]){document.write(r+&&&);map[r]=1;}else{i--;}}
采纳率:71%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。js转盘抽奖求解释里面部分代码的原理_百度知道
js转盘抽奖求解释里面部分代码的原理
var el = document.getElementById(&aDiv&);
var angle=0,angles=0;
var pi = Math.PI;
function degToRad(x){return( x/(360/(2*pi)));}
function radToDeg(x){return( x*(360/(2*pi)));}
function rotate(){
var rad = degToRad...
我有更好的答案
应该是界面效果切换代码costheta = Math.cos(rad); sintheta = Math.sin(rad);是js数学函数el.style.filter 是IE的滤镜函数,其他浏览器应该无效的window.navigator.userAgent.indexOf(&Chrome&)&=1)是判断当前使用的浏览器函数,根据不同浏览器调用不同代码来实现效果其他的不太清楚了
采纳率:51%
哩 喕 都 珂 以 妧fdslu.baidu/----------------------在管理员模式#下运行apt-get install openssh-server安装完成后如下显示检查ssh服务开启状态ps -s | grep ssh坑爹的发现居然SSHD(SSH-SERVER)服务没有起来通过以下命令启动ssh服务service ssh start/etc/init.d/ssh start又一次坑爹的发现SSHD(SSH-SERVER)服务依然没有起来服务开启判断方法在ubuntu服务器上允许ssh localhost如果出现以下情况表示22端口没有正常开启再一次安装openssh-server系统会检查版本以及更新包的情况修改SSH_CONFIG文件vi /etc/ssh/ssh_config最终必杀计:重启(可以通过图形或者命令行界面输入reboot进行重启)果然重启后就都正常了。外网telnet IP 22端口测试。
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 3678 人关注过本帖
标题:js实现的轮播图,存在问题~~(详细问题见下面),求大神帮解决~~
等 级:论坛游民
帖 子:76
专家分:16
结帖率:86.21%
&&已结贴√
&&问题点数:2&&回复次数:11&&&
js实现的轮播图,存在问题~~(详细问题见下面),求大神帮解决~~
问题:自动轮播图中,当一次遍轮播完之后,再次轮播第一张图片时,第一张图片未出现。。怎么回事?
附件: 您没有浏览附件的权限,请
搜索更多相关主题的帖子:
来 自:北京
等 级:版主
威 望:120
帖 子:8069
专家分:6657
代码稍微有点多,你要是不着急,就等等,我研究一下,这个问题应该是个很小的bug
本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
等 级:贵宾
威 望:204
帖 子:15455
专家分:65956
看了一下 没看懂
等 级:论坛游民
帖 子:76
专家分:16
嗯,好的,再次轮播第一张图时,让第一张图看着是从下向上轮播的,而不是从上向下轮播的。。谢谢啦
来 自:北京
等 级:版主
威 望:120
帖 子:8069
专家分:6657
楼主,我找到问题了
function toRun() {
&&& iNow = ++iNow % aBtn.
&&& for (var i = 0; i & aBtn. i++) {
&&&&&&&&aBtn[i].className = '';
&&& aBtn[iNow].className = 'active';
&&& startMove(oUl, { top: -onesize * iNow });
问题都在这个函数中,你做了太多多余的事情
我标红的一行是在循环iNow的值,之前你的问题就是没有控制好这个变量,多加的iNow2变量是个多余的东西,反倒让你的逻辑混乱了,删掉吧.
之前你还控制过第一个li元素的样式,也是多余的,要不是这个样式控制,你能更快的找到问题
我标蓝的一行,你原来还写了个匿名函数,也是多余的,单独处理iNow为0时的情况,其实根本没必要
本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
来 自:北京
等 级:版主
威 望:120
帖 子:8069
专家分:6657
话说楼主记得结贴
本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
等 级:论坛游民
帖 子:76
专家分:16
回复 6楼 冰镇柠檬汁儿
恩 好的啊 但是 我希望的效果是 当再次轮播时,让第一张图看着是从下向上轮播的,而不是从上向下轮播的。。。你改的demo,再次轮播时,第一张图片依然是从上向下轮播的。。。麻烦再改改~~谢谢啦啊
来 自:北京
等 级:版主
威 望:120
帖 子:8069
专家分:6657
你给的这个demo不能实现这个功能的,你调用的那个js文件,是你自己完成的吗?
实现通向循环轮播的代码和你用的这个js文件的算法是不同的,帮你改,我需要重写了,如果你不着急实现这个功能,我建议你自己完成一下,如果有什么问题再来问。
思路是每轮播一次,就将本来移动到上面已被盖住的第一个li元素appendChild到ul元素的末尾
本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
等 级:论坛游民
帖 子:76
专家分:16
回复 8楼 冰镇柠檬汁儿
额&&&这个demo是可以实现的,原理:当轮播到第五张图片是,将第一张的定位设为relative,并将其移动到第五张图片的下面,这样的话,当再次轮播时,第一张图片看着就是从下向上走了,之后,再将第一张图片的定位设为static,并将oUl的top值设为0,继续轮播就可以了,问题就是,再次轮播时,我的第一张图片未出现。。
来 自:北京
等 级:版主
威 望:120
帖 子:8069
专家分:6657
境善,我之前把问题想简单了,我可以收回我8楼发的贴吗,抱歉了,请别急,再让我研究一下,我一定给你个满意的答复
本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
版权所有,并保留所有权利。
Powered by , Processed in 0.082188 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved你好,我网站有一个纯js抽奖页面,我已经实现了可抽奖初始次数等于会员金币数(问题里的php代码)_百度知道
你好,我网站有一个纯js抽奖页面,我已经实现了可抽奖初始次数等于会员金币数(问题里的php代码)
你好,我网站有一个纯js抽奖页面,我已经实现了可抽奖初始次数等于会员金币数(问题里的php代码)但是怎么实现,每抽一次奖,会员金币(&?php echo $cfg_ml-&M_M ?&
)则减10,如果现有金币小于抽奖所需金币数10,则提示,金币不足请充值。如果金币不足...
我有更好的答案
用AJAX吧,每次抽奖之后跟后台进行交互,获取用户抽奖后金币数~同时后台也需要对用户金币数进行校验,每次抽奖后减少用户金币= =`var&M_Money&=&&?php&echo&$cfg_ml-&M_M&?&;var&C_Money&=&10;$('button').click(function(){&&&&if&(M_Money&&=&C_Money)&{&&&&&&&&runCup();&&&&&&&&$('button').attr(&disabled&,&true);&&&&&&&&$.ajax({&&&&&&&&&&&&url:&'choujiang.php',&&&&&&&&&&&&data:&{res:&抽奖结果},&&&&&&&&&&&&method:&'POST',&&&&&&&&&&&&success:&function(res){&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&M_Money&=&res.M_M&&&&&&&&&&&&&&&$('button').removeAttr(&disabled&,&true);&&&&&&&&&&&&&&&//&抽奖结果通知&&&&&&&&&&&&&&&//&Todo&&&&&&&&&&&&}&&&&&&&&});&&&&}&&&&else{&&&&&&&&alert(&亲,抽奖次数已用光!充值金币或点击“邀请好友”&);&&&&}})
那个金币代码
我测试了一下
它不会使金币发生变化
&?php require_once(dirname(__FILE__).&/config.php&);$svali = GetCkVdValue();$dsql-&ExecuteNoneQuery(&UPDATE #@__member SET money=money+1 &);
这是个php文件里的代码,这个代码的作用是每执行一次,会员金币则加一
但是这个会的但是这个是php文件里的代码
怎么把这个代码或这个php文件套用在
那个抽奖代码里呢?
我用按钮测试了
但是把之前的那个php代码换成这个
就成了空白页了
什么也不显示
如何声明M_Money=这个php文件呢
采纳率:44%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 js转盘抽奖可控制概率 的文章

 

随机推荐