- var bcr = elem.getBoundingClientRect();
-
- var width = bcr.width;
- var height = bcr.height;
-
- x = Math.max(x - (width / 2), 0);
- y = Math.max(y - (height / 2), 0);
+ var detailsBcr = detailsElem.getBoundingClientRect();
+
+ const viewportArea = window.innerWidth * window.innerHeight;
+ const detailsArea = detailsBcr.width * detailsBcr.height;
+
+ const ratio = detailsArea / viewportArea;
+
+ const adjustedWidth = Math.min(
+ window.innerWidth,
+ Math.max(100, Math.ceil(window.innerWidth * ratio * 2))
+ );
+ detailsElem.style.width = adjustedWidth + 'px';
+
+ detailsBcr = detailsElem.getBoundingClientRect();
+
+ const leftOffset = (detailsBcr.width / 2);
+ const topOffset = (detailsBcr.height / 2);