X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FMoveList.vue;h=ecdc14207f6a432656810c84373b6791f84f26b3;hb=HEAD;hp=26c54719836e665400129621873e5f360b75d0c8;hpb=4665d3c6b2d9a7d1f1254690e63531a45f2305a4;p=vchess.git diff --git a/client/src/components/MoveList.vue b/client/src/components/MoveList.vue index 26c54719..ecdc1420 100644 --- a/client/src/components/MoveList.vue +++ b/client/src/components/MoveList.vue @@ -79,22 +79,16 @@ export default { document.getElementById("adjuster") .addEventListener("click", processModalClick); // Take full width on small screens: - let boardSize = - window.innerWidth >= 768 - ? 0.7 * Math.min(window.innerWidth, window.innerHeight) - : window.innerWidth; const movesWidth = window.innerWidth >= 768 ? 280 : 0; + const winBound = Math.min(window.innerWidth - movesWidth, window.innerHeight); + let boardSize = (window.innerWidth >= 768 ? 0.7 : 1.0) * winBound; document.getElementById("boardContainer").style.width = boardSize + "px"; let gameContainer = document.getElementById("gameContainer"); gameContainer.style.width = boardSize + movesWidth + "px"; - document.getElementById("boardSize").value = - (boardSize * 100) / (window.innerWidth - movesWidth); + const minBoardWidth = + (window.innerWidth <= 767 || "ontouchstart" in window) ? 160 : 240; + document.getElementById("boardSize").value = (boardSize - minBoardWidth) * 100 / (winBound - minBoardWidth); window.addEventListener("resize", () => this.adjustBoard()); - if ("ontouchstart" in window) { - // TODO: find something better than next height adjustment... - // maybe each variant could give its ratio (?!) - setTimeout( () => { this.adjustBoard("vertical"); }, 1000); - } }, beforeDestroy: function() { window.removeEventListener("resize", this.adjustBoard); @@ -172,9 +166,9 @@ export default { document.getElementById("rootBoardElement").getBoundingClientRect(); if (bRect.bottom > window.innerHeight) { const maxHeight = window.innerHeight - 20; - gameContainer.style.height = maxHeight + "px"; + document.getElementById("boardContainer").style.height = maxHeight + "px"; const boardSize = maxHeight * bRect.width / bRect.height; - boardContainer.style.width = boardSize + "px"; + boardContainer.style.width = Math.min(boardSize, boardContainer.style.width) + "px"; gameContainer.style.width = boardSize + movesWidth + "px"; this.$emit("redraw-board"); setTimeout( () => window.scroll(0, bRect.top), 1000); @@ -182,11 +176,14 @@ export default { } else { const k = document.getElementById("boardSize").value; - const minBoardWidth = 160; //TODO: these 160 and 280 are arbitrary... + // TODO: these 160 and 280 are arbitrary... + const minBoardWidth = + (window.innerWidth <= 767 || "ontouchstart" in window) ? 160 : 240; // Value of 0 is board min size; 100 is window.width [- movesWidth] + const maxWidth = + Math.min(window.innerHeight, window.innerWidth - movesWidth); const boardSize = - minBoardWidth + - (k * (window.innerWidth - (movesWidth + minBoardWidth))) / 100; + minBoardWidth + (k * (maxWidth - minBoardWidth)) / 100; boardContainer.style.width = boardSize + "px"; gameContainer.style.width = boardSize + movesWidth + "px"; this.$emit("redraw-board");