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);
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);
}
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");