Javascript 洗牌div,但显示数量有限
我用这段代码每n秒洗牌一次div的元素。。是否有一种方法可以在每次洗牌时仅显示2个元素(例如)Javascript 洗牌div,但显示数量有限,javascript,jquery,html,Javascript,Jquery,Html,我用这段代码每n秒洗牌一次div的元素。。是否有一种方法可以在每次洗牌时仅显示2个元素(例如) var parent = $("#shuffle"); var divs = parent.children().slice(); setInterval(function() { var clone = divs.slice(); // <-- clone, since splice modifies array while (clone.length) {
var parent = $("#shuffle");
var divs = parent.children().slice();
setInterval(function() {
var clone = divs.slice(); // <-- clone, since splice modifies array
while (clone.length) {
parent.append(clone.splice(Math.floor(Math.random() * clone.length), 1)[0]);
}
}, 2000); // <-- shuffle each 2 seconds
var parent=$(“#shuffle”);
var divs=parent.children().slice();
setInterval(函数(){
var clone=divs.slice();//您可以使用另一个:第n个子CSS规则限制显示的div
s的数量。例如,如果您只想显示两个,您可以使用:
.hue:nth-child(n+3) {
display: none;
}
var parent=$(“#shuffle”);
var divs=parent.children().slice();
setInterval(函数(){
var clone=divs.slice();
while(clone.length){
append(clone.splice(Math.floor(Math.random()*clone.length),1)[0]);
}
},2000);
.hue{
背景:ddd;
显示:块;
}
.hue:n个孩子(2n){
背景:黄色;
显示:块;
}
.hue:n个孩子(n+3){
显示:无;
}
一
二
三
四
这里有一个简单的解决方案
在每个间隔中,清除所有元素,然后添加从列表中随机选择的n
元素
var populateParent = (function() {
var parent = $("#shuffle");
var divs = parent.children().slice();
return function() {
parent.empty();
var clone = divs.slice();
for (var i = 0; i < 2 && i < divs.length; ++i) {
parent.append(clone.splice(Math.floor(Math.random() * clone.length), 1)[0]);
};
}
})();
populateParent();
setInterval(populateParent, 2000);
var populateParent=(函数(){
var parent=$(“#shuffle”);
var divs=parent.children().slice();
返回函数(){
parent.empty();
var clone=divs.slice();
对于(变量i=0;i<2&&i
什么是“仅n个元素”实际上是什么意思?页面上只有四个元素,你想将其限制为例如两个吗?是的,我想显示两个元素,例如谢谢,但我对JavaScript解决方案感兴趣,因为我必须在一个页面中显示多个容器,每个容器都有其定义的长度。你可以给每个容器自己的id,然后使用CSS ab在每个元素的基础上进行ove。只是在问题上,当它开始时..所有元素都是displayed@KamalSaleh如果这是一个问题,您可以在初始调用setInterval()之前调用parent.empty()
我已经试过了,但它启动时为空。。这很重要,因为我的间隔为15秒。。因此它将为空15秒。@KamalSaleh您在parent.children().slice()之后调用了parent.empty()
?是的,它将开始为空,直到第一个间隔通过为止