Javascript 选择随机元素
我有多个div元素,在父div下面有相同的类点,如下所示Javascript 选择随机元素,javascript,html,css,Javascript,Html,Css,我有多个div元素,在父div下面有相同的类点,如下所示 <div id="dots"> <div class="dot"> . </div> <div class="dot"> . </div> <div class="dot"> . </div> ... <div class="dot"> . </div> </div> 这个怎么样 func
<div id="dots">
<div class="dot"> . </div>
<div class="dot"> . </div>
<div class="dot"> . </div>
...
<div class="dot"> . </div>
</div>
这个怎么样
function addClassToRandomDotElement(){
var dotElements = document.getElementsByClassName('dot');
var totalDotElements = dotElements.length;
var randomNumber = Math.floor(Math.random() * totalDotElements ) + 1;
var randomDotElement = dotElements[randomNumber];
randomDotElement.addClass('someClass');
}
setInterval(function(){
addClassToRandomDotElement();
},5000);
如果使用jquery,可以尝试以下操作:
randomElements = jQuery("div").get().sort(function(){
return Math.round(Math.random())-0.5
}).slice(0,5)
您需要做的基本上是首先选择所有点,然后在每次定期激活运行时删除以前设置的类,并将其再次设置为随机元素,索引从0到点计数-1 这里有一个例子 var$dots=$'dots.dot'; 功能激活{ $dots.removeClass'active' .eq[数学.平面格式.随机*$点.长度] .addClass'active'; setTimeoutactivate,1000; } 使活动 圆点,圆点{ 显示:内联块; 高度:50px; 宽度:50px; 背景:珊瑚; 边界半径:50%; 不透明度:0.2; 过渡:不透明度。3s缓解; } dots.dot.active{不透明度:1;}
还有一种不同的方式,很容易理解 var noofdot=$.dot.length; 设置间隔函数{ $.dot.removeClasssomeClass; var x=Math.floorMath.random*noofdot+1; $.dot:n个子项+x+.addClasssomeClass; }, 5000; .某个班级 { 背景:绿色; } . . .... .
以下是对所有元素的迭代: 对所有元素的迭代 向随机元素添加类 从迭代列表中删除该元素。 var elements=document.getElementsByClassNamedot; 设置间隔函数{ var random=Math.floorMath.random*elements.length; 元素[random].className+=extra; 删除元素[随机]; }, 1000; //把1000换成5000。这是以毫秒为单位的间隔速度。 .额外的{ 字体大小:200%; 背景颜色:矢车菊蓝; 宽度:50px; } 测验 测验 测验 测验
下面是另一个简单的方法: 函数变色{ var randInt=getRandomInt0,$.dot:not.newStyle.length-1; $$.dot:not.newStyle[randInt].addClass'newStyle'; } 函数getRandomIntmin,max{ 返回Math.floorMath.random*max-min+1+min; } 设置间隔函数{ 变色; },3000; .newStyle{背景色:绿色;} 测试 测验 凉的 更多 猫
哈哈我认为下面的内容应该适合你 window.radomNo=0; 设置间隔函数{ ifradomNo$.dot:eq+radomNo+.toggleClassrandomcss; window.radomNo=Math.floorMath.random*$.dot.length+1; $.dot:eq+radomNo+.toggleClassrandomcss; },1000; .css{ 背景:黄色; } . . . . . . . . . . . . .
我认为最好通过GetElementByClass选择您尝试过什么?澄清:从上一点删除类,或者通过保留上一点添加到新的?我打赌以前从来没有人尝试过选择随机元素。很好的问题。A+unique.downvoted,因为您没有设置间隔或向RandomElements添加类,所以应为Math.floorMath.random*totalDotElements;或者第一个元素永远不会被选中,并且有可能超出边界。
randomElements = jQuery("div").get().sort(function(){
return Math.round(Math.random())-0.5
}).slice(0,5)