Случайный стиль после перезагрузки страницы
Надо чтобы после перезагрузки страницы у всех блоков менялся border-left: 35px solid #00f; рандом.
У одного может быть top у другого left у третьего right и так далее. Помогите пожалуйста
body {
margin: 50px;
}
.circle {
width: 200px;
height: 200px;
border-radius: 50%;
position: relative;
border-radius: 50%;
overflow: hidden;
}
.circle__img,
.circle:before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.circle__img {
object-fit: cover;
}
.circle:before {
content: '';
border-left: 35px solid #00f;
border-radius: 100px;
z-index: 1;
}
<div class="circle">
<img class="circle__img" src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png" alt="">
</div>
<div class="circle">
<img class="circle__img" src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png" alt="">
</div>
<div class="circle">
<img class="circle__img" src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png" alt="">
</div>
Ответы (3 шт):
Автор решения: Muhammadrasul
→ Ссылка
Для этого вы можете использовать массивы, т.е. сохраняя в них рандомные стили, которые в дальнейшем будете использовать:
let array = ['border-left', 'border-right', 'border-top', 'border-bottom']
А потом, генерировать случайное число в пределах 0 и длины вашего массива. После чего обращаться к элементу массива по случайно сгенерированному индексу. А значение дальше используйте.
Автор решения: MoloF
→ Ссылка
const classes = ['red', 'blue', 'green', 'pink', 'yellow', 'black'];
const elements = document.querySelectorAll('.circle');
elements.forEach(element =>
element.classList.add(
classes[~~(classes.length * Math.random())]
)
);
body {
margin: 50px;
}
.circle {
width: 200px;
height: 200px;
border-radius: 50%;
position: relative;
border-radius: 50%;
overflow: hidden;
display: inline-block;
}
.circle__img,
.circle:before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.circle__img {
object-fit: cover;
}
.circle:before {
content: '';
border-style: solid;
border-color: #00f;
border-left-width: 35px;
border-radius: 100px;
z-index: 1;
}
.circle.red:before { border-color: red; }
.circle.blue:before { border-color: blue; }
.circle.green:before { border-color: green; }
.circle.pink:before { border-color: pink; }
.circle.yellow:before { border-color: yellow; }
.circle.black:before { border-color: black; }
<div class="circle">
<img class="circle__img" src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png" alt="">
</div>
<div class="circle">
<img class="circle__img" src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png" alt="">
</div>
<div class="circle">
<img class="circle__img" src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png" alt="">
</div>
Автор решения: CbIPoK2513
→ Ссылка
Вариант на jQuery.
$('.demo .circle').each(function(){ // Перебераем каждый элемент
let border = Math.floor(Math.random() * 4); // рандомное число
switch(border) { // Выводим свои значения
case 0: border = 'left'; break;
case 1: border = 'top'; break;
case 2: border = 'right'; break;
case 3: border = 'bottom'; break;
}
// Присваиваем блоку новый стиль
$(this).css('border-'+border, 'var(--border-style)');
});
.demo {
display: flex;
flex-direction: row;
width: 100%;
}
.demo .circle {
display: block;
width: 60px;
height: 60px;
border-radius: 100%;
/* Сам стиль прописан в CSS переменной */
--border-style: 10px solid #07f;
overflow: hidden;
box-sizing: border-box;
}
.demo .circle:not(:last-child) {
margin-right: 10px;
}
.demo .circle > img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="demo">
<div class="circle">
<img src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png">
</div>
<div class="circle">
<img src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png">
</div>
<div class="circle">
<img src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png">
</div>
<div class="circle">
<img src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png">
</div>
<div class="circle">
<img src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png">
</div>
<div class="circle">
<img src="https://www.vbetnews.com/wp-content/uploads/2018/08/Jurgen-Klopp.png">
</div>
</div>