Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 - Fatal编程技术网

我希望循环只运行一次—JavaScript

我希望循环只运行一次—JavaScript,javascript,Javascript,我期待着运行这个游戏一次,然后链接到另一个html页面,一旦任务完成。然而,一旦用户成功完成挑战,这个游戏就会重复 我只想玩一次游戏。如果需要,我可以上传html和css文件 希望有人能解决这个问题,我可以上传html和css文件,如果你需要的话。虽然这些都很简单 const onSectionClick=event=>{ event.preventDefault() const cardClicked=event.composedPath().find(元素=>( […元素.类列表].包括(

我期待着运行这个游戏一次,然后链接到另一个html页面,一旦任务完成。然而,一旦用户成功完成挑战,这个游戏就会重复

我只想玩一次游戏。如果需要,我可以上传html和css文件

希望有人能解决这个问题,我可以上传html和css文件,如果你需要的话。虽然这些都很简单

const onSectionClick=event=>{
event.preventDefault()
const cardClicked=event.composedPath().find(元素=>(
[…元素.类列表].包括('card'))
如果(!cardClicked.disabled){
cardClicked.disabled=true
const currentRotation=cardClicked.dataset.rotation
常量newRotation=`${Number(currentRotation)+1}`
cardClicked.dataset.rotation=newRotation
如果(新旋转==“4”){
const imageFragment=cardClicked.querySelector(“.imageFragment”)
cardClicked.addEventListener('transitionend',()=>{
imageFragment.style.transitionDuration=“0s”
requestAnimationFrame(()=>{
cardClicked.dataset.rotation=“0”
requestAnimationFrame(()=>{
imageFragment.style.transitionDuration=“”
})
})
}, {
一次:对
})
}
const allCards=[…document.queryselectoral('.card')]
const isPuzzleComplete=allCards.every(card=>[“0”,“4”]。includes(card.dataset.rotation))
如果(isPuzzleComplete){
allCards.forEach(card=>card.disabled=true)
设置超时(()=>{
指数+=1
如果(索引===puzzles.length){
索引=0
}
tableOnStart(拼图[索引],3)
}, 3000)
}否则{
cardClicked.addEventListener('transitionend',()=>{
cardClicked.disabled=false
}, {
一次:对
})
}
}
}
const tableOnStart=(拼图,大小=4)=>{
const getRandomRotation=()=>Math.floor(Math.random()*4)
常数renderCard=(x,y)=>`
`
const renderRow=children=>`
${children}
`
常量索引=数组.from(数组(大小).keys())
const boardHTML=index.map(rowIndex=>(
伦德罗(
index.map(columnIndex=>(
renderCard(行索引、列索引)
)).加入(“”)
)
)).加入(“”)
document.getElementById('board')。innerHTML=boardHTML
document.querySelectorAll('.card').forEach(card=>{
card.addEventListener('click',onSectionClick)
card.addEventListener('contextmenu',onSectionClick)
card.addEventListener('auxclick',onSectionClick)
})
}
常数谜题=[
“地板地图”
]
让index=Math.floor(Math.random()*puzzles.length)
tableOnStart(拼图[索引],3)
document.addEventListener('click'{
一次:对
})
*{
填充:0;
保证金:0;
框大小:边框框;
用户选择:无;
字号:0;
}
html,
身体{
身高:100%;
}
#董事会{
背景图像:url(“https://images.unsplash.com/photo-1523861751938-121b5323b48b?ixid=MXwxMjA3fDB8MHxzZWFyY2h8Mnx8ZmlyZXxlbnwwfHwwfA%3D%3D&ixlib=rb-1.2.1&auto=格式&fit=裁剪&w=800&q=60“;
;
背景尺寸:封面;
宽度:100%;
身高:100%;
显示器:flex;
弯曲方向:立柱;
对齐项目:居中;
证明内容:中心;
}
@关键帧淡入淡出{
从{
变换:比例(0.2);
}
到{
变换:比例(1);
}
}
.卡片{
保证金:2倍;
背景色:透明;
转变:转变2s;
动画持续时间:0.3s;
动画名称:fadeIn;
}
.imageFragment{
宽度:100%;
身高:100%;
转变:转变0.4s;
}
.card[data rotation=“0”].imageFragment{
变换:旋转(0度);
}
.card[data rotation=“1”].imageFragment{
变换:旋转(90度);
}
.card[data rotation=“2”].imageFragment{
变换:旋转(180度);
}
.card[data rotation=“3”].imageFragment{
变换:旋转(270度);
}
.card[data rotation=“4”].imageFragment{
变换:旋转(360度);
}

我自己想出来的。我换了
tableOnStart(拼图[索引],3)
具有
window.location.replace(“https://stackoverflow.com/");

只需执行以下操作:

if (isPuzzleComplete) {
  allCards.forEach(card => card.disabled = true)
  setTimeout(() => {
    index += 1
    if (index === puzzles.length) {
      // index = 0
      alert("DONE!") 
      window.location.replace("https://stackoverflow.com/");
    }
    else tableOnStart(puzzles[index], 3)
  }, 1000) 
const onSectionClick=event=>{
event.preventDefault()
const cardClicked=event.composedPath().find(元素=>(
[…元素.类列表].包括('card'))
如果(!cardClicked.disabled){
cardClicked.disabled=true
const currentRotation=cardClicked.dataset.rotation
常量newRotation=`${Number(currentRotation)+1}`
cardClicked.dataset.rotation=newRotation
如果(新旋转==“4”){
const imageFragment=cardClicked.querySelector(“.imageFragment”)
cardClicked.addEventListener('transitionend',()=>{
imageFragment.style.transitionDuration=“0s”
requestAnimationFrame(()=>{
cardClicked.dataset.rotation=“0”
requestAnimationFrame(()=>{
imageFragment.style.transitionDuration=“”
})
})
}, {
一次:对
})
}
const allCards=[…document.queryselectoral('.card')]
const isPuzzleComplete=allCards.every(card=>[“0”,“4”]。includes(card.dataset.rotation))
如果(isPuzzleComplete){
allCards.forEach(card=>card.disabled=true)
设置超时(()=>{
指数+=1
如果(索引===puzzles.length){
警报(“完成!”)
window.location.replace(“https://stackoverflow.com/");
}else tableOnStart(拼图[索引],3)
}, 1000)
}否则{
cardClicked.addEventListener('transitionend',()=>{
cardClicked.disabled=false
}, {
一次:对
})
}
}
}
const tableOnStart=(拼图,大小=4)=>{
const getRandomRotation=()=>Math.floor(Math.random()*4)
常数renderCard=(x,y)=>`
`
const renderRow=children=>`
${children}
`
常量索引=数组.from(数组(大小).keys())
const boardHTML=index.map(rowIndex=>(
伦德罗(
index.map(columnIndex=>(