4 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
應(yīng)為 而不是 。displaynonehidden
hidden與 一起使用。visibility
另外,您需要放置一個(gè)將隱藏的條件。目前你已經(jīng)在外面寫了它,它不會(huì)在點(diǎn)擊按鈕時(shí)運(yùn)行。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';
}
};
此外,由于相同的代碼塊正在重復(fù),您可能希望將其解壓縮并放入另一個(gè)函數(shù)以重用它。并使用而不是失去比較=====
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貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您錯(cuò)過(guò)了兩件事:
每次單擊任何按鈕時(shí),都應(yīng)檢查計(jì)數(shù)條件。
hidden
不是屬性的有效值,請(qǐng)?zhí)鎿Q為 。display
none
hidden
我建議您避免在許多地方編寫重復(fù)的代碼?,F(xiàn)在這些是您需要做的更改,
//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貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
我將您的代碼段減少到最低限度,并將點(diǎn)擊次數(shù)更改為5。但除此之外,我希望它或多或少地做你想要的:你可以在兩個(gè)按鈕上單擊指定的時(shí)間,然后再次單擊以顯示最初隱藏的按鈕。
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貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以將隱藏按鈕的部分移動(dòng)到單擊處理功能。
//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>
添加回答
舉報(bào)