3 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以將參數(shù)傳遞給 timeout 函數(shù),因此我們可以使用它來顯示第一個(gè)值,然后增加它并再次啟動超時(shí),如果該值為<= 3:
window.setTimeout(press, 1000, 1);
//Should use For loop variable to fetch and print specific element's Id
function press(j) {
document.getElementById(j).innerHTML = j;
if (++j <= 3) window.setTimeout(press, 1000, j);
}
//Id for each item
<p id=1></p>
<p id=2></p>
<p id=3></p>

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
JavaScript 的替代方法是為此使用 CSS。作為獎勵,即使 JavaScript 被禁用,您的頁面仍然可以工作。
首先,讓我們從一些干凈、有效的標(biāo)記開始:
<html>
<body>
<div class="popIn">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
</div>
</body>
</html>
現(xiàn)在,您的 CSS(例如在 中的<style>標(biāo)記中<head>)添加一個(gè)關(guān)鍵幀動畫,visible在最后一秒將可見性設(shè)置為正確:
@keyframes popIn {
99% {
visibility: hidden;
}
100% {
visibility: visible;
}
}
現(xiàn)在,添加一個(gè)規(guī)則來選擇.popIn. 在這個(gè)選擇器中,>意味著直接后代,并且*意味著任何東西。該規(guī)則將設(shè)置我們的動畫。
.popIn > * {
animation: 1s popIn;
animation-fill-mode: forwards;
visibility: hidden;
}
如果您現(xiàn)在運(yùn)行此代碼,您會看到 1 秒后,所有內(nèi)容都同時(shí)出現(xiàn)。我們所要做的就是按順序選擇各個(gè)段落并更改動畫持續(xù)時(shí)間。
.popIn *:nth-child(2) {
animation-duration: 2s;
}
.popIn *:nth-child(3) {
animation-duration: 3s;
}
現(xiàn)在,段落將依次顯示,無需編寫腳本!

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
在您的情況下,setTimeout它只觸發(fā)一次,因?yàn)樗鼪]有等待循環(huán)并i在范圍內(nèi)聲明,因此在循環(huán)之后它等于3.
您可以使用setInterval以下方法傳遞參數(shù)并執(zhí)行clearIntervalwheni超過數(shù)量參數(shù):
let i = 1;
const a = window.setInterval(press, 1000, i);
//Should use For loop variable to fetch and print specific element's Id
function press() {
document.getElementById(i).innerHTML = i++;
if (i > 3)
window.clearInterval(a);
}
//Id for each item
<p id="1"></p>
<p id="2"></p>
<p id="3"></p>
添加回答
舉報(bào)