Javascript 在屏幕上随机淡入淡出x元素

Javascript 在屏幕上随机淡入淡出x元素,javascript,jquery,Javascript,Jquery,我有一个100个对象的数组列表,我想随机添加到屏幕上 for (var i = 0; i < theobject.length; i++) { var item = theobject[Math.floor(Math.random()*theobject.length)]; $('.container').append('<div class="theitem"> i

我有一个100个对象的数组列表,我想随机添加到屏幕上

                for (var i = 0; i < theobject.length; i++) {
                    var item = theobject[Math.floor(Math.random()*theobject.length)];
                    $('.container').append('<div class="theitem"> item.themessage </div>')
                }

好的,我的目标是一次在屏幕上添加五个,然后用qued列表中的下一个随机替换其中的一个。淡出的那个将从DOM中删除,也将从对象列表中删除,这样它就不会被再次放置。有什么建议吗?非常感谢

以下是您可以做到这一点的方法:

不要从数组中获取随机值,而是首先基于随机选择对数组进行洗牌。然后,您可以迭代该数组,而不必担心会得到重复的数组 使用jqueryanimate方法清除并设置5个元素之一的不透明度 使用promise方法创建一个promise,然后链接一个回调,该回调在动画准备就绪时执行 使用“延迟”在选择下一项并使其褪色之前引入一段时间。 将其放入自调用函数中,使其无限期重复 使用%运算符实现循环数组遍历 代码:

//效用函数 函数shufflea{ 对于let i=a,长度为-1;i>0;i-{ 常数j=Math.floorMath.random*i+1; [a[i],a[j]=[a[j],a[i]]; } 返回a; } //一些样本数据 变量对象=[Lorem、ipsum、dolor、sit、amet、Concertetur、Adipising、Elite、sed、do、eiusmod、Temporal、Incidedut、ut、labore、et、dolore、magna、aliqua、ut、enim、ad、minim、veniam、quis、nostrud、Execution、ullamco、laboris、nisi、aliquip、ex、ea、commodo、consequat、Duis、aute、irure、in、Reprehendereit、voluptate、velit、esse、Cilum、Elum、eu、fugiat、A、pariatur、A、Exception、Caidat、Cupida、,傲慢、阴险、过失、魁、官方、德尚、莫利特、动物、身份证、est、劳工] .maps=>{themessage:s}; //1.洗牌数组 洗牌对象; //2.在页面上添加前5个元素 对于变量i=0;i<5;i++{ $.AddClassItem.texttheobject[i].themessage.appendTo$'.container'; } //3.异步循环,从无序数组中选择其中一个并替换为下一个 函数loopi{ var j=Math.floorMath.random*5; $'.container>.item.eqj.animate{opacity:0}.promise.thenfunction{ 返回$this.texttheobject[i].themessage.animate{opacity:1}.delay500.promise; }.Then函数{ loopi+1%的对象长度; }; }5;
这是你提出的一个非常广泛的要求。你自己尝试过吗?寻找指导方针,psuedo代码。你自己尝试过吗?你的洗牌算法就是所谓的Fisher-Yates洗牌算法:老兄,你太棒了!非常感谢。这肯定会让我开始。