Перемещение div'а с помощью CSS

150
28 января 2021, 01:50

Нужно сместить элемент на 50 пикселей, написал такой скрипт - не смещается.

document.getElementById("holter").style.left += 50 + 'px';

Если просто написать

document.getElementById("holter").style.left = 200 + 'px';

тогда работает, но мне нужно именно прибавлять + 50 пикселей.

Answer 1

Метод getBoundingClientRect() возвращает объект, содержащий нужную вам информацию. Оттуда можно достать и left, чтобы к нему суммировать 50:

let holter = document.getElementById("holter"); 
holter.style.left = holter.getBoundingClientRect().left + 50 + 'px';
#holter, #test { 
  width: 60px; 
  height: 60px; 
  position: absolute; 
  left: 150px; 
  background-color: orange; 
  border-radius: 50%; 
  text-align: center; font-size: 22px; 
}
<div id="holter">+50</div> 
 
<br><br><br><br> 
 
<div id="test"></div>

Еще демо:

let bubu = document.getElementById('bubu'); 
 
console.log( bubu.getBoundingClientRect() );
#bubu { 
  width: 60px; 
  height: 60px; 
  position: absolute; 
  left: 150px; 
  background-color: orange; 
  border-radius: 50%; 
}
<div id="bubu"></div>

А если нужен вообще какой угодно стиль, его можно достать так:

let bubu = document.getElementById('bubu'); 
 
console.log( 'font-size: ' + window.getComputedStyle(bubu).fontSize ); 
console.log( window.getComputedStyle(bubu) );
<div id="bubu">bubu</div>

READ ALSO
Объясните, пожалуйста, про Array.prototype.filter.call()

Объясните, пожалуйста, про Array.prototype.filter.call()

Есть такой кусочек кода, который отстортировывает все div'ыМне непонятно:

152
Сделать избранное для пользователя

Сделать избранное для пользователя

Всем доброго времени сутокДля сайта понадобилась функция "Добавить в избранное"

202
Значение value у option переносить в input

Значение value у option переносить в input

Мне надо реализовать, чтобы при замене option изменялось значение value и у inputПрикладываю, как я пытался реализовать

175
C++/ AVR. Оператор new[](unsignet int) не определён

C++/ AVR. Оператор new[](unsignet int) не определён

Пишу на С++ программку для AtMega328pПри компиляции получается ошибка - undefined reference to operator new[](unsigned int) ругается на строчку uint8_t* arr = new uint8_t[10];

131