Цель такова: открывать попап так, что бы он не вызывал горизонтального скроллинга (т.е. если он не помещается в экран, то должен открываться слева от блока).

Подумал о вот таком способе:
var popup = document.getElementById('popup__calendar');
if(popup.getBoundingClientRect().right > document.body.clientWidth){
//если координаты попапа с правой стороны больше ширины клиентского экрана,
//то спозиционировать его слева от блока
popup.style.left= className[i].offsetLeft + 'px'; // + 200
popup.style.top = className[i].offsetTop + 'px';
} else{
// иначе справа
popup.style.right= className[i].offsetLeft + 'px'; // + 200
popup.style.top = className[i].offsetTop + 'px';
}
Но в итоге происходит вот следующее (гифка):
https://gyazo.com/206a464a074b3d1cd7aa4ef1d6b90913
Подскажите, что я сделал не так? Или может есть какой-то другой способ (уверен что есть :) )