4 回答

TA貢獻1842條經驗 獲得超13個贊
應為 而不是 。displaynonehidden
hidden與 一起使用。visibility
另外,您需要放置一個將隱藏的條件。目前你已經在外面寫了它,它不會在點擊按鈕時運行。elsestep1
function countDown() {
clicks += 1;
document.getElementById("test").innerHTML = clicks;
if (clicks == 12 && clicks1 == 13){
document.getElementById("step1").style.display = 'block';
}else{
document.getElementById("step1").style.display = 'none';
}
};
function countDown1() {
clicks1 += 1;
document.getElementById("test1").innerHTML = clicks1;
if (clicks == 12 && clicks1 == 13){
document.getElementById("step1").style.display = 'block';
}else{
document.getElementById("step1").style.display = 'none';
}
};
此外,由于相同的代碼塊正在重復,您可能希望將其解壓縮并放入另一個函數以重用它。并使用而不是失去比較=====
function countDown() {
clicks += 1;
document.getElementById("test").innerHTML = clicks;
hiddenOrVisible(clicks, clicks1)
};
function countDown1() {
clicks1 += 1;
document.getElementById("test1").innerHTML = clicks1;
hiddenOrVisible(clicks, clicks1)
};
function hiddenOrVisible(clicks, clicks1){
if (clicks === 12 && clicks1 === 13){
document.getElementById("step1").style.display = 'block';
}else{
document.getElementById("step1").style.display = 'none';
}
}

TA貢獻1828條經驗 獲得超6個贊
您錯過了兩件事:
每次單擊任何按鈕時,都應檢查計數條件。
hidden
不是屬性的有效值,請替換為 。display
none
hidden
我建議您避免在許多地方編寫重復的代碼?,F在這些是您需要做的更改,
//var clickNeeded = 12;
var clicks = 0;
var clicks1 = 0;
function checkCondition(){
if (clicks != 12 && clicks1 != 13){
document.getElementById("step1").style.display = 'none';
}
else if (clicks == 12 && clicks1 == 13){
document.getElementById("step1").style.display = 'block';
}
}
function countDown() {
clicks += 1;
document.getElementById("test").innerHTML = clicks;
checkCondition();
}
function countDown1() {
clicks1 += 1;
document.getElementById("test1").innerHTML = clicks1;
checkCondition();
};
function messageAfficher() {
document.getElementById("enigme").style.display = 'block';
}

TA貢獻1856條經驗 獲得超11個贊
我將您的代碼段減少到最低限度,并將點擊次數更改為5。但除此之外,我希望它或多或少地做你想要的:你可以在兩個按鈕上單擊指定的時間,然后再次單擊以顯示最初隱藏的按鈕。
const btns=[...document.querySelectorAll('[id^=test]')];
function makevisible(id){document.querySelector('#'+id).style.display='block'}
var maxClicks=5;
document.querySelector('.buttons').addEventListener('click',function(ev){
var b=ev.target;
if (b.id)
if (b.id.substr(0,4)=='test') {
if (b.textContent<maxClicks) b.textContent=+b.textContent+1
else if(btns.reduce((s,v)=>+v.textContent+s,0)==2*maxClicks)
makevisible('step1')
} else if (b.id=="step1") makevisible('enigme')
})
#step1, #enigme {display:none}
<div class="header">
<h1>Bienvenue dans cette aventure!</h1>
<p>Some irrelevant text (shortened).</p>
</div>
<div class="buttons">
<div class="step"><button id="test">0</button></div>
<div class="step"><button id="test1">0</button></div>
<div class="step"><button id="step1">Où suis-je?</button></div>
<div class="enigme">
<p id="enigme">Coordonne</p>
</div>
</div>

TA貢獻1847條經驗 獲得超11個贊
您可以將隱藏按鈕的部分移動到單擊處理功能。
//var clickNeeded = 12;
let clicksOne = 0;
let clicksTwo = 0;
function countDown(id) {
const buttonClicks = id === 'test1' ? ++clicksOne : ++clicksTwo;
document.getElementById(id).innerHTML = buttonClicks;
if (clicksOne == 12 && clicksTwo == 13){
document.getElementById("step1").style.display = 'block';
} else {
document.getElementById("step1").style.display = 'none';
}
};
function messageAfficher() {
document.getElementById("enigme").style.display = 'block';
}
body{
background-color: black;
}
@font-face{
font-family: 'hacked';
src: url(font/Hacked-KerX.ttf);
font-style: normal;
}
.header{
text-align: center;
margin: 50px 100px;
font-family: hacked;
}
.header h1{
color: purple;
font-size: 80px;
margin: 50px
}
.header p{
color: purple;
font-size: 20px;
text-align: justify;
padding-right: 100px;
padding-left: 100px;
}
.enigme {
color: aliceblue;
text-align: center;
font-family: hacked;
}
.step {
display: flex;
justify-content: center;
align-items: center;
height: 50px;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="fonction.js"></script>
<title>Escape Game</title>
<link rel="stylesheet" href="main.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<!--===========================================================================================================================-->
<body>
<div class="header">
<h1>Bienvenue dans cette aventure!</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div class="step">
<button id="test1" onclick="countDown(this.id)">0</button>
</div>
<div class="step">
<button id="test2" onclick="countDown(this.id)">0</button>
</div>
<div class="step">
<button id="step1" onclick="messageAfficher()" style="display:none">Où suis-je?</button>
</div>
<div class="enigme">
<p id="enigme" style="display:none">Coordonne</p>
</div>
</body>
<!--===========================================================================================================================-->
</html>
添加回答
舉報