var rect = a.getBoundingClientRect(); var tipWidth = rect.right - rect.left; // получаем ширину div var tipFlow = 378 - (rect.left + tipWidth); // проверяем, не ушел ли div за правую границу родителя b = c.pageX||c.clientX + (d && d.scrollLeft || f && f.scrollLeft || 0) - (d.clientLeft || 0); // некие волшебные расчеты от ридза if(tipFlow < 0) { // если div хотя бы частично ушел за правую границу a.style.left = ?????? "px"; // что написать здесь, чтобы блок отображался слева от курсора? } else { // все в порядке, div не вышел за рамку a.style.left = 24 + b + "px"; // +24 пикселя от курсора, блок отображается справа от курсора } }