Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 洗牌div,但显示数量有限_Javascript_Jquery_Html - Fatal编程技术网

Javascript 洗牌div,但显示数量有限

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) {

我用这段代码每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) {
        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()
?是的,它将开始为空,直到第一个间隔通过为止