Вращение значков с использованием позиции Javascript - PullRequest
0 голосов
/ 06 августа 2020

Я хочу динамически позиционировать элементы, используя javascript, но я действительно не знаю, как это сделать, я все еще изучаю javascript, я хочу добавить, например, 4 значка 1 вверху и 1 внизу и 1 слева и справа, но используя css, когда вам нужно добавить больше элементов, вам нужно добавить еще css код и положение статически, вот код:

body {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  background: white;
}

.container-circle {
  text-align: center;
  position: relative;
  height: 250px;
  width: 250px;
  border-radius: 50%;
  transition: all 1s ease;
}

.container-circle .container-circle-img {
  height: 250px;
  width: 250px;
  border-radius: 50%;
  object-fit: cover;
}

.container-circle::before {
  content: '';
  position: absolute;
  top: -3;
  left: -3;
  right: -3;
  bottom: -3;
  border-radius: 50%;
  z-index: -1;
  background-image: linear-gradient(180deg, red, blue, yellow, green);
  animation: rotate 3s linear infinite;
}

.container-circle-icons {
  text-align: center;
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  border-radius: 60%;
  animation: rotate 10s linear infinite;
  padding: 0;
  margin: 0;
}

.container-circle-icons .ico {
  width: 50px;
  height: 50px;
}

.container-circle-icons .ico1 {
  content: '';
  position: absolute;
  top: -20%;
  left: 35%;
}

.container-circle-icons .ico2 {
  content: '';
  position: absolute;
  top: 50%;
  right: -30%;
}

.container-circle-icons .ico3 {
  content: '';
  position: absolute;
  left: 35%;
  bottom: -30%;
}

.container-circle-icons .ico4 {
  content: '';
  position: absolute;
  top: 50%;
  left: -60%;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
<div class="container-circle">
  <img class="container-circle-img" src="picture.jpg" alt="pic1">
  <div class="container-circle-icons">
    <img src="icon1.png" class="ico ico1" alt="">
    <img src="icon2.png" class="ico ico2" alt="">
    <img src="icon3.png" class="ico ico3" alt="">
    <img src="icon4.png" class="ico ico4" alt="">
  </div>
</div>

1 Ответ

0 голосов
/ 07 августа 2020

Положение элементов в конечном итоге будет определяться CSS, но если вы хотите динамически добавлять элементы и перемещать их, вы можете установить это CSS, используя javascript.

Допустим, вы вставляете новый элемент с помощью id='test'. Вы можете динамически изменять его положение, выполнив следующие действия:

const newElement = document.getElementById('test');
element.style.left = '150%' // whatever value you want
element.style.top= '75px' // make sure you include units
...