Вот как вы можете подойти к этой проблеме, она включает в себя создание массива border-radius
значений и последующее объединение их для формирования строкового правила CSS.
Создание функции, которая возвращаетслучайное число от 1 до 100:
function randomPercentage(){
return Math.floor(Math.random() * 100);
}
Для каждой карты получите ее ширину
$(".card-body").each(function(){
const width = $(this).width();
// ...
});
Затем создайте новый массивсодержащий два числа ([ 0, 0 ]
):
$(".card-body").each(function(){
const width = $(this).width();
const borderRadiusStyle = [0,0];
// ...
});
Нам нужно отобразить этот массив несколько раз, чтобы получить массив border-radius
значений.Сначала назначьте случайный процент каждому элементу (с помощью функции randomPercentage
).Затем присвойте каждому проценту значение, умножив его на ширину объекта (это хорошее справочное значение для нашего border-radius
).Другая карта объединит значение со строкой 'px'
.Наконец, мы объединим два элемента вместе с пробелом между ними.
$(".card-body").each(function(){
const width = $(this).width();
const borderRadiusStyle = [0,0];
.map(value => randomPercentage())
.map(percentage => width*percentage)
.map(pixels => pixels + 'px')
.join(' ');
// ...
});
Затем можно назначить свойство для объекта:
$(".card-body").each(function(){
const width = $(this).width();
const borderRadiusStyle = [0,0];
.map(value => randomPercentage())
.map(percentage => width*percentage)
.map(pixels => pixels + 'px')
.join(' ');
$(this).css( { borderRadius: borderRadiusStyle });
});
Вот полный фрагмент кода:
function randomPercentage(){
return Math.floor(Math.random() * 100);
}
$(".card-body").each(function(){
const width = $(this).width();
const borderRadiusStyle = [0,0]
.map(value => randomPercentage())
.map(percentage => width*percentage)
.map(pixels => pixels + 'px')
.join(' ');
$(this).css( { borderRadius: borderRadiusStyle });
});
.card-body {
width: 200px;
height: 100px;
background-color: purple;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="card-body"></div>
<div class="card-body"></div>