Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 轮盘赌,选择图像_Javascript_Php - Fatal编程技术网

Javascript 轮盘赌,选择图像

Javascript 轮盘赌,选择图像,javascript,php,Javascript,Php,我正在尝试制作一个“轮盘赌”脚本,但我有一些问题。我正努力做到这一点: 如果单击“开始”,我希望从头到尾逐个高亮显示 随机循环次数(从开始到结束)后,在随机图像上也停止循环,并用绿色边框(赢家)高亮显示,并提醒数据id 此时,每当我单击“开始”时,它都会开始高亮显示每个图像,但之前的图像上的边框不会被删除。我真的不知道如何做到这一点 我的代码: 函数开始(){ var el=document.queryselectoral(“.roulette项”); 播放(el,el.长度); }; 功

我正在尝试制作一个“轮盘赌”脚本,但我有一些问题。我正努力做到这一点:

  • 如果单击“开始”,我希望从头到尾逐个高亮显示
  • 随机循环次数(从开始到结束)后,在随机图像上也停止循环,并用绿色边框(赢家)高亮显示,并提醒
    数据id
此时,每当我单击“开始”时,它都会开始高亮显示每个图像,但之前的图像上的边框不会被删除。我真的不知道如何做到这一点

我的代码:

函数开始(){
var el=document.queryselectoral(“.roulette项”);
播放(el,el.长度);
};
功能播放(el,长度){
var项=0;
var interval=setInterval(()=>{
el[item].style.border=“3px实心黄色”;
如果(项目==长度){
项目=0;
}否则{
项目++;
}
}, 200);
}


开始
发生的情况是,您正在向元素添加样式,但没有将其从上一个元素中删除。使用您的代码,您可以进行以下调整:

function play(el, length) {
    var item = length - 1;
    var interval = setInterval(() => {
        el[item].style.border = "";
        item = (item + 1) % length;
        el[item].style.border = "3px solid yellow";
    }, 200);
}

如果您是Web开发的新手,您可以考虑使用CSS来描述您的边界,如:

.highlighted {
    border: 3px solid yellow;
}
当您运行轮盘赌时,您应该适当地附加和删除该类

function play(el, length) {
    var item = length - 1;
    var interval = setInterval(() => {
        el[item].classList.add("border");
        item = (item + 1) % length;
        el[item].classList.remove("border");
    }, 200);
}

任何客户端代码(即在浏览器上运行的JavaScript)都可以很容易地进行操作。例如,如果您要在拾取随机图像后向PHP端点发送请求,则有人可以手动发送请求并规避随机性。我会用PHP在服务器上随机选取一个项目,然后让JavaScript一个接一个地高亮显示图像,然后停在服务器端代码选取的图像上。好的!我会试着:)从内森的话中振作起来;永远不要信任服务器端显示的任何内容。曾经时期生成一个散列服务器端,显示基于散列的“轮盘赌”,然后比较散列。任何客户端操作都可以通过简单的“右键单击+检查元素”,然后覆盖所需元素。例如“输->赢”。此外,不要把如何在JS中创建散列列,因为它们可以用相同的原则进行询问,然后使用蛮力创建散列,直到有人获胜。我考虑了一些不太复杂的事情。例如,每当我点击“Roll”时,我在服务器上调用一个函数,该函数返回1到10之间的随机数,它将是它在图像中循环的次数,以及它应该停止的元素id。然后,在客户端将其作为函数参数进行回显。够了吗Pim获取:无法读取第一个示例中未定义的属性“style”。对不起,我弄错了。我的索引太过分了。这应该是正确的。