X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FMoveList.vue;h=ecdc14207f6a432656810c84373b6791f84f26b3;hp=290897c0962177bfcd6ff9f2599773c88f989027;hb=be4b9421603ea763010b01b853363a1bda93ce36;hpb=75f009f4269247957f760da4613420aba0201c8f diff --git a/client/src/components/MoveList.vue b/client/src/components/MoveList.vue index 290897c0..ecdc1420 100644 --- a/client/src/components/MoveList.vue +++ b/client/src/components/MoveList.vue @@ -79,20 +79,16 @@ export default { document.getElementById("adjuster") .addEventListener("click", processModalClick); // Take full width on small screens: - let boardSize = - window.innerWidth >= 768 - ? 0.75 * 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); - window.addEventListener("resize", this.adjustBoard); - // TODO: find sometjhing better than next height adjustment... - // maybe each variant could give its ratio (?!) - setTimeout( () => { this.adjustBoard("vertical"); }, 1000); + const minBoardWidth = + (window.innerWidth <= 767 || "ontouchstart" in window) ? 160 : 240; + document.getElementById("boardSize").value = (boardSize - minBoardWidth) * 100 / (winBound - minBoardWidth); + window.addEventListener("resize", () => this.adjustBoard()); }, beforeDestroy: function() { window.removeEventListener("resize", this.adjustBoard); @@ -170,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); @@ -180,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");