更新时间:2023-12-02 21:52:16
您需要使用 setInterval
才能创建一个计时器,然后你可以选择一个随机数并设置该项目索引的类。
这样:
HTML
< ul>
< li>一个< / li>
< li>两个< / li>
< li>三< / li>
< li>四< / li>
< li>五< / li>
< li>六< / li>
< li>七< / li>
< li>八< / li>
< li>九< / li>
< li>十< / li>
< / ul>
Javascript(w / JQuery)
setRandomClass();
setInterval(function(){
setRandomClass();
},2000); //毫秒数(2000 = 2秒)
function setRandomClass {
var ul = $(ul);
var items = ul.find(li);
var number = items.length;
var random = Math.floor((Math.random()* number));
items.removeClass(special);
items.eq(random).addClass(special);
}
Let's say I have an unordered list of ten elements.
I'd like a class to be added to one of them at random, and then remove that class after a couple of seconds and start again with another randomly chosen element indefinitely.
What would be the cleanest way to achieve that?
edit: What I've got so far:
<ul id="hideAndSeek">
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
...
</ul>
And the jQuery:
var random = Math.floor(Math.random() * 1000);
var shownElement = $("#hideAndSeek li");
shownElement.eq(random % shownElement.length).addClass("shown");
However, this obviously does not run continuously, and I don't know how to properly set a delay before removing the class.
You need to use setInterval
to create a timer, and then you can choose a random number and set the class for that item index.
Something like this:
HTML
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
<li>five</li>
<li>six</li>
<li>seven</li>
<li>eight</li>
<li>nine</li>
<li>ten</li>
</ul>
Javascript (w/ JQuery)
setRandomClass();
setInterval(function () {
setRandomClass();
}, 2000);//number of milliseconds (2000 = 2 seconds)
function setRandomClass() {
var ul = $("ul");
var items = ul.find("li");
var number = items.length;
var random = Math.floor((Math.random() * number));
items.removeClass("special");
items.eq(random).addClass("special");
}