Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Присвоить один класс рандомно для списка элементов (https://javascript.ru/forum/jquery/62270-prisvoit-odin-klass-randomno-dlya-spiska-ehlementov.html)

moslem 02.04.2016 13:59

Присвоить один класс рандомно для списка элементов
 
Здравствуйте.

<div class="stars">
		<div class="star hs1"></div>
		<div class="star hs2"></div>
		<div class="star hs3"></div>
		<div class="star hs4"></div>
		<div class="star hs5"></div>
		<div class="star hs6"></div>
		<div class="star hs7"></div>
		<div class="star hs8"></div>
		<div class="star hs9"></div>
	</div>


есть вот такой HTML код, нужно рандомно каждую секунду 2-3 элементам присваивать класс fadeTo, допустим рандомно выпало 3 5 7 элементу класс, через секунду она убирает его и присваивает другим элементам, как можно подобное реализовать через each?

protoquest 02.04.2016 14:32

<html>
<head>
<style>
 .foo{
   background: red
 }
</style>
</head>
<body>
<div id = "out"></div>

<div class="stars">
        <div class="star hs1">*</div>
        <div class="star hs2">*</div>
        <div class="star hs3">*</div>
        <div class="star hs4">*</div>
        <div class="star hs5">*</div>
        <div class="star hs6">*</div>
        <div class="star hs7">*</div>
        <div class="star hs8">*</div>
        <div class="star hs9">*</div>
    </div>

<script>

var random = function(){return Math.random() > 0.5 ? true : false}
var changeClass = function(el){
   /foo/.test(el.className) ? el.className = el.className.replace(/[ ]*foo/, "") : el.className = el.className + " foo"
}
var block = document.getElementsByClassName("stars")[0].getElementsByClassName("star")
var change = function(el){
    random() ? changeClass(el) : null
}

setInterval(function(){
   Array.prototype.forEach.call(block, change) 
}, 1000)

</script>
</body>
</html>

moslem 02.04.2016 14:44

protoquest, спасибо, то что нужно :)


Часовой пояс GMT +3, время: 02:58.