我試圖編寫一個程序來練習我的js技能。有3個球,他們首先被隱藏起來。我想先ball_1出現,1秒後,ball_1消失。接下來,ball_2出現,1秒後消失;同樣的邏輯與ball_3一致。當我運行我的代碼時,前兩個球不會隱藏。我不確定發生了什麼問題。下面的代碼是我寫的html,css和js代碼。希望有人能幫助我。先謝謝你。嘗試setTimeout來顯示和隱藏球
$(document).ready(function() {
var notes = ['ball_1', 'ball_2', 'ball_3'];
for (i = notes.length; i > 0; i--) {
var note = notes.shift();
$('#' + note).addClass('shown');
setTimeout(function() {
$('#' + note).removeClass('shown');
}, 1000);
}
});
#ball_1 {
width: 10px;
height: 10px;
background: #000000;
border: 2px solid #ccc;
border-radius: 50%;
}
#ball_2 {
width: 10px;
height: 10px;
background: #0000FF;
border: 2px solid #ccc;
border-radius: 50%;
}
#ball_3 {
width: 10px;
height: 10px;
background: #7FFF00;
border: 2px solid #ccc;
border-radius: 50%;
}
#ball_1,
#ball_2,
#ball_3 {
width: 10px;
height: 10px;
border: 2px solid #ccc;
border-radius: 50%;
}
.not_shown {
display: none;
}
.shown {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<div id="ball">
<div id="ball_1" class="not_shown"></div>
<div id="ball_2" class="not_shown"></div>
<div id="ball_3" class="not_shown"></div>
</div>
非常感謝您幫助我理解「回調」的概念。我從來沒有學過它。我有一個問題,在「隱藏」函數中,有一個函數「callback()」。這是一個JavaScript中的內置方法,因爲我沒有看到你寫函數。第二個問題是顯示了三個球在同一個地方,有沒有什麼辦法讓ball_1顯示在最上面的位置,ball_2顯示在中間,而ball_3在底部,就像在html中重寫的順序一樣?再次非常感謝你!! – vkosyj
'callback()'與函數的參數'callback'相同,對於其他疑問,您可以使用'visibility:visible'和'visibility:hidden',而不是切換'display' ....讓我知道如果您遇到問題實施:) – kukkuz
謝謝你的回覆,我發現這對我來說是充滿了理解的一種挑戰,所以基本上callback()實際上是hideball(),所以我可以想到hideball()在一段時間後自動調用自己的代碼 – vkosyj